You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2021/10/18 04:07:26 UTC

[rocketmq-client-cpp] branch main updated (4bc0e35 -> a0db0cb)

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

lizhanhui pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-cpp.git.


    from 4bc0e35  Update main.yml
     new 6984b94  Add utility to fix file header copyright comment
     new a0db0cb  BugFix: Add copyright file header comment

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 BUILD                                              |  0
 BUILD.bazel                                        | 16 ++++++
 api/BUILD.bazel                                    | 16 ++++++
 api/rocketmq/AdminServer.h                         | 16 ++++++
 api/rocketmq/AsyncCallback.h                       | 16 ++++++
 api/rocketmq/ConsumeType.h                         | 16 ++++++
 api/rocketmq/Credentials.h                         | 16 ++++++
 api/rocketmq/CredentialsProvider.h                 | 16 ++++++
 api/rocketmq/DefaultMQProducer.h                   | 16 ++++++
 api/rocketmq/DefaultMQPullConsumer.h               | 16 ++++++
 api/rocketmq/DefaultMQPushConsumer.h               | 16 ++++++
 api/rocketmq/ErrorCategory.h                       | 16 ++++++
 api/rocketmq/ErrorCode.h                           | 16 ++++++
 api/rocketmq/Executor.h                            | 16 ++++++
 api/rocketmq/ExpressionType.h                      | 16 ++++++
 api/rocketmq/LocalTransactionStateChecker.h        | 16 ++++++
 api/rocketmq/Logger.h                              | 16 ++++++
 api/rocketmq/MQClientException.h                   | 16 ++++++
 api/rocketmq/MQMessage.h                           | 16 ++++++
 api/rocketmq/MQMessageExt.h                        | 16 ++++++
 api/rocketmq/MQMessageQueue.h                      | 16 ++++++
 api/rocketmq/MQSelector.h                          | 16 ++++++
 api/rocketmq/MessageListener.h                     | 16 ++++++
 api/rocketmq/MessageModel.h                        | 16 ++++++
 api/rocketmq/MessageType.h                         | 16 ++++++
 api/rocketmq/OffsetStore.h                         | 16 ++++++
 api/rocketmq/PullResult.h                          | 16 ++++++
 api/rocketmq/RocketMQ.h                            | 16 ++++++
 api/rocketmq/SendResult.h                          | 16 ++++++
 api/rocketmq/State.h                               | 16 ++++++
 api/rocketmq/Transaction.h                         | 16 ++++++
 bazel/BUILD                                        |  0
 bazel/BUILD.bazel                                  | 16 ++++++
 example/rocketmq/BUILD.bazel                       | 16 ++++++
 example/rocketmq/BenchmarkPushConsumer.cpp         | 17 ++++++-
 example/rocketmq/ExampleAsyncProducer.cpp          | 17 ++++++-
 example/rocketmq/ExampleBroadcastPushConsumer.cpp  | 17 ++++++-
 example/rocketmq/ExampleProducer.cpp               | 17 ++++++-
 example/rocketmq/ExamplePullConsumer.cpp           | 17 ++++++-
 example/rocketmq/ExamplePushConsumer.cpp           | 17 ++++++-
 example/rocketmq/ExampleTransactionProducer.cpp    | 17 ++++++-
 .../rocketmq/PushConsumerWithCustomExecutor.cpp    | 17 ++++++-
 example/rocketmq/PushConsumerWithThrottle.cpp      | 17 ++++++-
 example/rocketmq/SqlConsumer.cpp                   | 17 ++++++-
 example/rocketmq/SqlProducer.cpp                   | 17 ++++++-
 proto/BUILD.bazel                                  | 16 ++++++
 src/main/cpp/admin/AdminClient.cpp                 | 16 ++++++
 src/main/cpp/admin/AdminFacade.cpp                 | 16 ++++++
 src/main/cpp/admin/AdminServerImpl.cpp             | 16 ++++++
 src/main/cpp/admin/AdminServiceImpl.cpp            | 16 ++++++
 src/main/cpp/admin/BUILD.bazel                     | 16 ++++++
 src/main/cpp/admin/include/AdminClient.h           | 16 ++++++
 src/main/cpp/admin/include/AdminServerImpl.h       | 16 ++++++
 src/main/cpp/admin/include/AdminServiceImpl.h      | 16 ++++++
 src/main/cpp/admin/include/ServerCall.h            | 16 ++++++
 src/main/cpp/base/BUILD.bazel                      | 16 ++++++
 src/main/cpp/base/ErrorCategory.cpp                | 16 ++++++
 src/main/cpp/base/ErrorCode.cpp                    | 16 ++++++
 src/main/cpp/base/HostInfo.cpp                     | 16 ++++++
 src/main/cpp/base/HttpClientImpl.cpp               | 16 ++++++
 src/main/cpp/base/MQMessage.cpp                    | 16 ++++++
 src/main/cpp/base/MQMessageExt.cpp                 | 16 ++++++
 src/main/cpp/base/MessageAccessor.cpp              | 16 ++++++
 src/main/cpp/base/MetadataConstants.cpp            | 16 ++++++
 src/main/cpp/base/MixAll.cpp                       | 16 ++++++
 src/main/cpp/base/Protocol.cpp                     | 16 ++++++
 src/main/cpp/base/RateLimiter.cpp                  | 16 ++++++
 src/main/cpp/base/ThreadPoolImpl.cpp               | 16 ++++++
 src/main/cpp/base/TopAddressing.cpp                | 16 ++++++
 src/main/cpp/base/UniqueIdGenerator.cpp            | 16 ++++++
 src/main/cpp/base/UtilAll.cpp                      | 16 ++++++
 src/main/cpp/base/include/DigestType.h             | 16 ++++++
 src/main/cpp/base/include/Encoding.h               | 16 ++++++
 src/main/cpp/base/include/Histogram.h              | 16 ++++++
 src/main/cpp/base/include/HostInfo.h               | 16 ++++++
 src/main/cpp/base/include/HttpClient.h             | 16 ++++++
 src/main/cpp/base/include/HttpClientImpl.h         | 16 ++++++
 src/main/cpp/base/include/InvocationContext.h      | 16 ++++++
 src/main/cpp/base/include/MessageAccessor.h        | 16 ++++++
 src/main/cpp/base/include/MessageImpl.h            | 16 ++++++
 src/main/cpp/base/include/MetadataConstants.h      | 16 ++++++
 src/main/cpp/base/include/MixAll.h                 | 16 ++++++
 src/main/cpp/base/include/Protocol.h               | 16 ++++++
 src/main/cpp/base/include/RateLimiter.h            | 16 ++++++
 src/main/cpp/base/include/ThreadPool.h             | 16 ++++++
 src/main/cpp/base/include/ThreadPoolImpl.h         | 16 ++++++
 src/main/cpp/base/include/TopAddressing.h          | 16 ++++++
 src/main/cpp/base/include/UniqueIdGenerator.h      | 16 ++++++
 src/main/cpp/base/include/UtilAll.h                | 16 ++++++
 src/main/cpp/base/mocks/BUILD.bazel                | 16 ++++++
 src/main/cpp/base/mocks/include/HttpClientMock.h   | 16 ++++++
 .../cpp/base/mocks/include/MessageListenerMock.h   | 16 ++++++
 src/main/cpp/client/BUILD.bazel                    | 16 ++++++
 src/main/cpp/client/ClientConfigImpl.cpp           | 16 ++++++
 src/main/cpp/client/ClientManagerFactory.cpp       | 16 ++++++
 src/main/cpp/client/ClientManagerImpl.cpp          | 16 ++++++
 src/main/cpp/client/LogInterceptor.cpp             | 16 ++++++
 src/main/cpp/client/LogInterceptorFactory.cpp      | 16 ++++++
 src/main/cpp/client/RpcClientImpl.cpp              | 16 ++++++
 src/main/cpp/client/Signature.cpp                  | 16 ++++++
 src/main/cpp/client/TlsHelper.cpp                  | 16 ++++++
 src/main/cpp/client/TopicAssignmentInfo.cpp        | 16 ++++++
 src/main/cpp/client/TopicPublishInfo.cpp           | 16 ++++++
 src/main/cpp/client/TracingUtility.cpp             | 16 ++++++
 src/main/cpp/client/include/Assignment.h           | 16 ++++++
 src/main/cpp/client/include/Broker.h               | 16 ++++++
 src/main/cpp/client/include/Client.h               | 16 ++++++
 src/main/cpp/client/include/ClientConfig.h         | 16 ++++++
 src/main/cpp/client/include/ClientConfigImpl.h     | 16 ++++++
 src/main/cpp/client/include/ClientManager.h        | 16 ++++++
 src/main/cpp/client/include/ClientManagerFactory.h | 16 ++++++
 src/main/cpp/client/include/ClientManagerImpl.h    | 16 ++++++
 src/main/cpp/client/include/ConsumeMessageType.h   | 16 ++++++
 .../cpp/client/include/HeartbeatDataCallback.h     | 16 ++++++
 .../cpp/client/include/InterceptorContinuation.h   | 16 ++++++
 src/main/cpp/client/include/LogInterceptor.h       | 16 ++++++
 .../cpp/client/include/LogInterceptorFactory.h     | 16 ++++++
 src/main/cpp/client/include/OpenSSLCompatible.h    | 16 ++++++
 .../cpp/client/include/OrphanTransactionCallback.h | 16 ++++++
 src/main/cpp/client/include/Partition.h            | 16 ++++++
 .../cpp/client/include/ReceiveMessageCallback.h    | 16 ++++++
 src/main/cpp/client/include/ReceiveMessageResult.h | 16 ++++++
 src/main/cpp/client/include/RpcClient.h            | 16 ++++++
 src/main/cpp/client/include/RpcClientImpl.h        | 16 ++++++
 src/main/cpp/client/include/SendMessageContext.h   | 16 ++++++
 src/main/cpp/client/include/ServiceAddress.h       | 16 ++++++
 src/main/cpp/client/include/Signature.h            | 16 ++++++
 src/main/cpp/client/include/TlsHelper.h            | 16 ++++++
 src/main/cpp/client/include/Topic.h                | 16 ++++++
 src/main/cpp/client/include/TopicAssignmentInfo.h  | 16 ++++++
 src/main/cpp/client/include/TopicPublishInfo.h     | 16 ++++++
 .../cpp/client/include/TopicRouteChangeCallback.h  | 16 ++++++
 src/main/cpp/client/include/TopicRouteData.h       | 16 ++++++
 src/main/cpp/client/mocks/BUILD.bazel              | 16 ++++++
 src/main/cpp/client/mocks/RpcClientMock.cpp        | 16 ++++++
 .../cpp/client/mocks/include/ClientConfigMock.h    | 16 ++++++
 .../cpp/client/mocks/include/ClientManagerMock.h   | 16 ++++++
 src/main/cpp/client/mocks/include/ClientMock.h     | 16 ++++++
 .../mocks/include/ReceiveMessageCallbackMock.h     | 16 ++++++
 src/main/cpp/client/mocks/include/RpcClientMock.h  | 16 ++++++
 src/main/cpp/concurrent/BUILD.bazel                | 16 ++++++
 src/main/cpp/concurrent/CountdownLatch.cpp         | 16 ++++++
 src/main/cpp/concurrent/include/CountdownLatch.h   | 16 ++++++
 src/main/cpp/log/BUILD.bazel                       | 16 ++++++
 src/main/cpp/log/LoggerImpl.cpp                    | 16 ++++++
 src/main/cpp/log/include/LoggerImpl.h              | 16 ++++++
 src/main/cpp/remoting/BUILD.bazel                  | 16 ++++++
 src/main/cpp/remoting/BrokerData.cpp               | 16 ++++++
 src/main/cpp/remoting/QueryRouteRequestHeader.cpp  | 16 ++++++
 src/main/cpp/remoting/QueueData.cpp                | 16 ++++++
 src/main/cpp/remoting/RemotingCommand.cpp          | 16 ++++++
 src/main/cpp/remoting/TopicRouteData.cpp           | 16 ++++++
 src/main/cpp/remoting/include/BrokerData.h         | 16 ++++++
 .../cpp/remoting/include/CommandCustomHeader.h     | 16 ++++++
 src/main/cpp/remoting/include/LanguageCode.h       | 16 ++++++
 .../cpp/remoting/include/QueryRouteRequestHeader.h | 16 ++++++
 src/main/cpp/remoting/include/QueueData.h          | 16 ++++++
 src/main/cpp/remoting/include/RemotingCommand.h    | 16 ++++++
 .../cpp/remoting/include/RemotingCommandType.h     | 16 ++++++
 src/main/cpp/remoting/include/RequestCode.h        | 16 ++++++
 src/main/cpp/remoting/include/ResponseCode.h       | 16 ++++++
 src/main/cpp/remoting/include/TopicRouteData.h     | 16 ++++++
 src/main/cpp/remoting/include/Version.h            | 16 ++++++
 .../cpp/rocketmq/AsyncReceiveMessageCallback.cpp   | 16 ++++++
 src/main/cpp/rocketmq/AwaitPullCallback.cpp        | 16 ++++++
 src/main/cpp/rocketmq/BUILD.bazel                  | 16 ++++++
 src/main/cpp/rocketmq/ClientImpl.cpp               | 16 ++++++
 .../cpp/rocketmq/ConsumeFifoMessageService.cpp     | 16 ++++++
 .../cpp/rocketmq/ConsumeMessageServiceBase.cpp     | 16 ++++++
 .../cpp/rocketmq/ConsumeStandardMessageService.cpp | 16 ++++++
 src/main/cpp/rocketmq/CredentialsProvider.cpp      | 16 ++++++
 src/main/cpp/rocketmq/DefaultMQProducer.cpp        | 16 ++++++
 src/main/cpp/rocketmq/DefaultMQPullConsumer.cpp    | 16 ++++++
 src/main/cpp/rocketmq/DefaultMQPushConsumer.cpp    | 16 ++++++
 .../cpp/rocketmq/DynamicNameServerResolver.cpp     | 16 ++++++
 src/main/cpp/rocketmq/FilterExpression.cpp         | 16 ++++++
 .../cpp/rocketmq/MessageGroupQueueSelector.cpp     | 16 ++++++
 src/main/cpp/rocketmq/ProcessQueueImpl.cpp         | 16 ++++++
 src/main/cpp/rocketmq/ProducerImpl.cpp             | 16 ++++++
 src/main/cpp/rocketmq/PullConsumerImpl.cpp         | 16 ++++++
 src/main/cpp/rocketmq/PushConsumerImpl.cpp         | 16 ++++++
 src/main/cpp/rocketmq/SendCallbacks.cpp            | 16 ++++++
 src/main/cpp/rocketmq/StaticNameServerResolver.cpp | 16 ++++++
 src/main/cpp/rocketmq/TransactionImpl.cpp          | 16 ++++++
 .../rocketmq/include/AsyncReceiveMessageCallback.h | 16 ++++++
 src/main/cpp/rocketmq/include/AwaitPullCallback.h  | 16 ++++++
 src/main/cpp/rocketmq/include/ClientImpl.h         | 16 ++++++
 .../cpp/rocketmq/include/ClientResourceBundle.h    | 16 ++++++
 .../rocketmq/include/ConsumeFifoMessageService.h   | 16 ++++++
 .../cpp/rocketmq/include/ConsumeMessageService.h   | 16 ++++++
 .../rocketmq/include/ConsumeMessageServiceBase.h   | 16 ++++++
 .../include/ConsumeStandardMessageService.h        | 16 ++++++
 src/main/cpp/rocketmq/include/Consumer.h           | 16 ++++++
 .../rocketmq/include/DynamicNameServerResolver.h   | 16 ++++++
 src/main/cpp/rocketmq/include/FilterExpression.h   | 16 ++++++
 .../rocketmq/include/MessageGroupQueueSelector.h   | 16 ++++++
 src/main/cpp/rocketmq/include/NameServerResolver.h | 16 ++++++
 src/main/cpp/rocketmq/include/ProcessQueue.h       | 16 ++++++
 src/main/cpp/rocketmq/include/ProcessQueueImpl.h   | 16 ++++++
 src/main/cpp/rocketmq/include/ProducerImpl.h       | 16 ++++++
 src/main/cpp/rocketmq/include/PullConsumerImpl.h   | 16 ++++++
 src/main/cpp/rocketmq/include/PushConsumer.h       | 16 ++++++
 src/main/cpp/rocketmq/include/PushConsumerImpl.h   | 16 ++++++
 src/main/cpp/rocketmq/include/SendCallbacks.h      | 16 ++++++
 .../rocketmq/include/StaticNameServerResolver.h    | 16 ++++++
 .../rocketmq/include/StsCredentialsProviderImpl.h  | 16 ++++++
 src/main/cpp/rocketmq/include/TransactionImpl.h    | 16 ++++++
 src/main/cpp/rocketmq/mocks/BUILD.bazel            | 16 ++++++
 .../mocks/include/ConsumeMessageServiceMock.h      | 16 ++++++
 src/main/cpp/rocketmq/mocks/include/ConsumerMock.h | 16 ++++++
 .../mocks/include/NameServerResolverMock.h         | 16 ++++++
 .../cpp/rocketmq/mocks/include/ProcessQueueMock.h  | 16 ++++++
 .../cpp/rocketmq/mocks/include/PushConsumerMock.h  | 16 ++++++
 src/main/cpp/scheduler/BUILD.bazel                 | 16 ++++++
 src/main/cpp/scheduler/SchedulerImpl.cpp           | 16 ++++++
 src/main/cpp/scheduler/include/Scheduler.h         | 16 ++++++
 src/main/cpp/scheduler/include/SchedulerImpl.h     | 16 ++++++
 src/main/cpp/tracing/exporters/BUILD.bazel         | 16 ++++++
 src/main/cpp/tracing/exporters/OtlpExporter.cpp    | 16 ++++++
 .../cpp/tracing/exporters/include/OtlpExporter.h   | 16 ++++++
 src/test/cpp/benchmark/BUILD.bazel                 | 16 ++++++
 src/test/cpp/benchmark/BenchmarkTest.cpp           | 16 ++++++
 src/test/cpp/it/BUILD.bazel                        | 16 ++++++
 src/test/cpp/it/RpcClientTest.cpp                  | 16 ++++++
 src/test/cpp/it/TopAddressingTest.cpp              | 16 ++++++
 src/test/cpp/it/TopicPublishInfoTest.cpp           | 16 ++++++
 src/test/cpp/ut/BUILD.bazel                        | 17 +++++++
 src/test/cpp/ut/admin/AdminServerTest.cpp          | 16 ++++++
 src/test/cpp/ut/admin/BUILD.bazel                  | 16 ++++++
 src/test/cpp/ut/api/BUILD.bazel                    | 16 ++++++
 src/test/cpp/ut/api/ErrorCodeTest.cpp              | 16 ++++++
 src/test/cpp/ut/base/BUILD.bazel                   | 16 ++++++
 src/test/cpp/ut/base/HistogramTest.cpp             | 16 ++++++
 src/test/cpp/ut/base/HostInfoTest.cpp              | 16 ++++++
 src/test/cpp/ut/base/HttpClientTest.cpp            | 16 ++++++
 src/test/cpp/ut/base/InvocationContextTest.cpp     | 16 ++++++
 src/test/cpp/ut/base/MQMessageExtTest.cpp          | 16 ++++++
 src/test/cpp/ut/base/MQMessageTest.cpp             | 16 ++++++
 src/test/cpp/ut/base/MixAllTest.cpp                | 16 ++++++
 src/test/cpp/ut/base/RateLimiterTest.cpp           | 16 ++++++
 src/test/cpp/ut/base/ThreadPoolTest.cpp            | 16 ++++++
 src/test/cpp/ut/base/TopAddressingTest.cpp         | 16 ++++++
 src/test/cpp/ut/base/UniqueIdGeneratorTest.cpp     | 16 ++++++
 src/test/cpp/ut/base/UtilAllTest.cpp               | 16 ++++++
 src/test/cpp/ut/client/BUILD.bazel                 | 16 ++++++
 .../cpp/ut/client/ClientManagerFactoryTest.cpp     | 16 ++++++
 src/test/cpp/ut/client/ClientManagerTest.cpp       | 16 ++++++
 src/test/cpp/ut/client/ClientTest.cpp              | 16 ++++++
 src/test/cpp/ut/client/RpcClientTest.cpp           | 16 ++++++
 src/test/cpp/ut/client/TlsHelperTest.cpp           | 16 ++++++
 src/test/cpp/ut/client/TopicAssignmentInfoTest.cpp | 16 ++++++
 src/test/cpp/ut/client/TracingUtilityTest.cpp      | 16 ++++++
 src/test/cpp/ut/concurrent/BUILD.bazel             | 16 ++++++
 src/test/cpp/ut/concurrent/CountdownLatchTest.cpp  | 16 ++++++
 src/test/cpp/ut/grpc/BUILD.bazel                   | 16 ++++++
 src/test/cpp/ut/grpc/GrpcThreadPoolTest.cpp        | 16 ++++++
 src/test/cpp/ut/grpc/GrpcTimer.cpp                 | 16 ++++++
 src/test/cpp/ut/logger/BUILD.bazel                 | 16 ++++++
 src/test/cpp/ut/logger/LoggerTest.cpp              | 16 ++++++
 src/test/cpp/ut/remoting/BUILD.bazel               | 16 ++++++
 src/test/cpp/ut/remoting/BrokerDataTest.cpp        | 16 ++++++
 .../ut/remoting/QueryRouteRequestHeaderTest.cpp    | 16 ++++++
 src/test/cpp/ut/remoting/QueueDataTest.cpp         | 16 ++++++
 src/test/cpp/ut/remoting/RemotingCommandTest.cpp   | 16 ++++++
 src/test/cpp/ut/remoting/TopicRouteDataTest.cpp    | 16 ++++++
 src/test/cpp/ut/rocketmq/AwaitPullCallbackTest.cpp | 16 ++++++
 src/test/cpp/ut/rocketmq/BUILD.bazel               | 16 ++++++
 src/test/cpp/ut/rocketmq/ClientImplTest.cpp        | 16 ++++++
 .../rocketmq/ConsumeStandardMessageServiceTest.cpp | 16 ++++++
 src/test/cpp/ut/rocketmq/ConsumerTest.cpp          | 16 ++++++
 .../cpp/ut/rocketmq/CredentialsProviderTest.cpp    | 16 ++++++
 src/test/cpp/ut/rocketmq/DefaultMQProducerTest.cpp | 16 ++++++
 .../cpp/ut/rocketmq/DefaultMQPushConsumerTest.cpp  | 16 ++++++
 .../ut/rocketmq/DynamicNameServerResolverTest.cpp  | 16 ++++++
 src/test/cpp/ut/rocketmq/ExecutorTest.cpp          | 16 ++++++
 src/test/cpp/ut/rocketmq/FilterExpressionTest.cpp  | 16 ++++++
 .../ut/rocketmq/MessageGroupQueueSelectorTest.cpp  | 16 ++++++
 src/test/cpp/ut/rocketmq/MessageTest.cpp           | 16 ++++++
 src/test/cpp/ut/rocketmq/ProcessQueueTest.cpp      | 16 ++++++
 src/test/cpp/ut/rocketmq/ProducerImplTest.cpp      | 16 ++++++
 src/test/cpp/ut/rocketmq/PullConsumerImplTest.cpp  | 16 ++++++
 src/test/cpp/ut/rocketmq/PushConsumerImplTest.cpp  | 16 ++++++
 src/test/cpp/ut/rocketmq/SendCallbacksTest.cpp     | 16 ++++++
 .../ut/rocketmq/StaticNameServerResolverTest.cpp   | 16 ++++++
 .../ut/rocketmq/StsCredentialsProviderImplTest.cpp | 16 ++++++
 src/test/cpp/ut/rocketmq/include/MQClientTest.h    | 16 ++++++
 src/test/cpp/ut/scheduler/BUILD.bazel              | 16 ++++++
 src/test/cpp/ut/scheduler/SchedulerTest.cpp        | 16 ++++++
 src/test/cpp/ut/tracing/exporters/BUILD.bazel      | 16 ++++++
 .../cpp/ut/tracing/exporters/OtlpExportersTest.cpp | 16 ++++++
 .../cpp/ut/tracing/exporters/SpanContextTest.cpp   | 16 ++++++
 third_party/BUILD                                  |  0
 third_party/BUILD.bazel                            | 16 ++++++
 tools/copyright.txt                                | 14 +++++
 tools/fix_copyright.py                             | 59 ++++++++++++++++++++++
 295 files changed, 4714 insertions(+), 11 deletions(-)
 delete mode 100644 BUILD
 create mode 100644 BUILD.bazel
 delete mode 100644 bazel/BUILD
 create mode 100644 bazel/BUILD.bazel
 create mode 100644 src/test/cpp/ut/BUILD.bazel
 delete mode 100644 third_party/BUILD
 create mode 100644 third_party/BUILD.bazel
 create mode 100644 tools/copyright.txt
 create mode 100755 tools/fix_copyright.py

[rocketmq-client-cpp] 01/02: Add utility to fix file header copyright comment

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lizhanhui pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-cpp.git

commit 6984b94343c75f5c5b6a7e945e1d45313409fbc8
Author: Li Zhanhui <li...@gmail.com>
AuthorDate: Mon Oct 18 11:36:23 2021 +0800

    Add utility to fix file header copyright comment
---
 tools/copyright.txt    | 14 ++++++++++++++
 tools/fix_copyright.py | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+)

diff --git a/tools/copyright.txt b/tools/copyright.txt
new file mode 100644
index 0000000..1745cfe
--- /dev/null
+++ b/tools/copyright.txt
@@ -0,0 +1,14 @@
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/tools/fix_copyright.py b/tools/fix_copyright.py
new file mode 100755
index 0000000..263fe81
--- /dev/null
+++ b/tools/fix_copyright.py
@@ -0,0 +1,38 @@
+#!/usr/bin/python
+import os
+import fnmatch
+
+def checkAndFixFileHeaderComment(fileName, template):
+    lines = []
+    with open(fileName, 'rw') as f:
+        lines = f.readlines()
+    
+    print(template)
+    for line in lines:
+        print(line)
+
+
+
+def main():
+    template = "/*\n"
+
+    with open('tools/copyright.txt', 'r') as reader:
+        line = reader.readline()
+        while line != '':
+           template += " * " + line
+           line = reader.readline()
+    template += " */"
+
+    for root, dir, files in os.walk(os.curdir):
+        if ".git/" in root:
+            continue
+
+        for item in fnmatch.filter(files, "*.h"):
+            checkAndFixFileHeaderComment(root + os.sep + item, template)
+
+        for item in fnmatch.filter(files, "*.cpp"):
+            checkAndFixFileHeaderComment(root + os.sep + item, template)
+
+
+if __name__ == "__main__":
+    main()
\ No newline at end of file

[rocketmq-client-cpp] 02/02: BugFix: Add copyright file header comment

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lizhanhui pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-cpp.git

commit a0db0cbea37203cc7cb5cd39a5098953840e3939
Author: Li Zhanhui <li...@gmail.com>
AuthorDate: Mon Oct 18 12:06:47 2021 +0800

    BugFix: Add copyright file header comment
---
 BUILD                                              |  0
 BUILD.bazel                                        | 16 ++++++++
 api/BUILD.bazel                                    | 16 ++++++++
 api/rocketmq/AdminServer.h                         | 16 ++++++++
 api/rocketmq/AsyncCallback.h                       | 16 ++++++++
 api/rocketmq/ConsumeType.h                         | 16 ++++++++
 api/rocketmq/Credentials.h                         | 16 ++++++++
 api/rocketmq/CredentialsProvider.h                 | 16 ++++++++
 api/rocketmq/DefaultMQProducer.h                   | 16 ++++++++
 api/rocketmq/DefaultMQPullConsumer.h               | 16 ++++++++
 api/rocketmq/DefaultMQPushConsumer.h               | 16 ++++++++
 api/rocketmq/ErrorCategory.h                       | 16 ++++++++
 api/rocketmq/ErrorCode.h                           | 16 ++++++++
 api/rocketmq/Executor.h                            | 16 ++++++++
 api/rocketmq/ExpressionType.h                      | 16 ++++++++
 api/rocketmq/LocalTransactionStateChecker.h        | 16 ++++++++
 api/rocketmq/Logger.h                              | 16 ++++++++
 api/rocketmq/MQClientException.h                   | 16 ++++++++
 api/rocketmq/MQMessage.h                           | 16 ++++++++
 api/rocketmq/MQMessageExt.h                        | 16 ++++++++
 api/rocketmq/MQMessageQueue.h                      | 16 ++++++++
 api/rocketmq/MQSelector.h                          | 16 ++++++++
 api/rocketmq/MessageListener.h                     | 16 ++++++++
 api/rocketmq/MessageModel.h                        | 16 ++++++++
 api/rocketmq/MessageType.h                         | 16 ++++++++
 api/rocketmq/OffsetStore.h                         | 16 ++++++++
 api/rocketmq/PullResult.h                          | 16 ++++++++
 api/rocketmq/RocketMQ.h                            | 16 ++++++++
 api/rocketmq/SendResult.h                          | 16 ++++++++
 api/rocketmq/State.h                               | 16 ++++++++
 api/rocketmq/Transaction.h                         | 16 ++++++++
 bazel/BUILD                                        |  0
 bazel/BUILD.bazel                                  | 16 ++++++++
 example/rocketmq/BUILD.bazel                       | 16 ++++++++
 example/rocketmq/BenchmarkPushConsumer.cpp         | 17 ++++++++-
 example/rocketmq/ExampleAsyncProducer.cpp          | 17 ++++++++-
 example/rocketmq/ExampleBroadcastPushConsumer.cpp  | 17 ++++++++-
 example/rocketmq/ExampleProducer.cpp               | 17 ++++++++-
 example/rocketmq/ExamplePullConsumer.cpp           | 17 ++++++++-
 example/rocketmq/ExamplePushConsumer.cpp           | 17 ++++++++-
 example/rocketmq/ExampleTransactionProducer.cpp    | 17 ++++++++-
 .../rocketmq/PushConsumerWithCustomExecutor.cpp    | 17 ++++++++-
 example/rocketmq/PushConsumerWithThrottle.cpp      | 17 ++++++++-
 example/rocketmq/SqlConsumer.cpp                   | 17 ++++++++-
 example/rocketmq/SqlProducer.cpp                   | 17 ++++++++-
 proto/BUILD.bazel                                  | 16 ++++++++
 src/main/cpp/admin/AdminClient.cpp                 | 16 ++++++++
 src/main/cpp/admin/AdminFacade.cpp                 | 16 ++++++++
 src/main/cpp/admin/AdminServerImpl.cpp             | 16 ++++++++
 src/main/cpp/admin/AdminServiceImpl.cpp            | 16 ++++++++
 src/main/cpp/admin/BUILD.bazel                     | 16 ++++++++
 src/main/cpp/admin/include/AdminClient.h           | 16 ++++++++
 src/main/cpp/admin/include/AdminServerImpl.h       | 16 ++++++++
 src/main/cpp/admin/include/AdminServiceImpl.h      | 16 ++++++++
 src/main/cpp/admin/include/ServerCall.h            | 16 ++++++++
 src/main/cpp/base/BUILD.bazel                      | 16 ++++++++
 src/main/cpp/base/ErrorCategory.cpp                | 16 ++++++++
 src/main/cpp/base/ErrorCode.cpp                    | 16 ++++++++
 src/main/cpp/base/HostInfo.cpp                     | 16 ++++++++
 src/main/cpp/base/HttpClientImpl.cpp               | 16 ++++++++
 src/main/cpp/base/MQMessage.cpp                    | 16 ++++++++
 src/main/cpp/base/MQMessageExt.cpp                 | 16 ++++++++
 src/main/cpp/base/MessageAccessor.cpp              | 16 ++++++++
 src/main/cpp/base/MetadataConstants.cpp            | 16 ++++++++
 src/main/cpp/base/MixAll.cpp                       | 16 ++++++++
 src/main/cpp/base/Protocol.cpp                     | 16 ++++++++
 src/main/cpp/base/RateLimiter.cpp                  | 16 ++++++++
 src/main/cpp/base/ThreadPoolImpl.cpp               | 16 ++++++++
 src/main/cpp/base/TopAddressing.cpp                | 16 ++++++++
 src/main/cpp/base/UniqueIdGenerator.cpp            | 16 ++++++++
 src/main/cpp/base/UtilAll.cpp                      | 16 ++++++++
 src/main/cpp/base/include/DigestType.h             | 16 ++++++++
 src/main/cpp/base/include/Encoding.h               | 16 ++++++++
 src/main/cpp/base/include/Histogram.h              | 16 ++++++++
 src/main/cpp/base/include/HostInfo.h               | 16 ++++++++
 src/main/cpp/base/include/HttpClient.h             | 16 ++++++++
 src/main/cpp/base/include/HttpClientImpl.h         | 16 ++++++++
 src/main/cpp/base/include/InvocationContext.h      | 16 ++++++++
 src/main/cpp/base/include/MessageAccessor.h        | 16 ++++++++
 src/main/cpp/base/include/MessageImpl.h            | 16 ++++++++
 src/main/cpp/base/include/MetadataConstants.h      | 16 ++++++++
 src/main/cpp/base/include/MixAll.h                 | 16 ++++++++
 src/main/cpp/base/include/Protocol.h               | 16 ++++++++
 src/main/cpp/base/include/RateLimiter.h            | 16 ++++++++
 src/main/cpp/base/include/ThreadPool.h             | 16 ++++++++
 src/main/cpp/base/include/ThreadPoolImpl.h         | 16 ++++++++
 src/main/cpp/base/include/TopAddressing.h          | 16 ++++++++
 src/main/cpp/base/include/UniqueIdGenerator.h      | 16 ++++++++
 src/main/cpp/base/include/UtilAll.h                | 16 ++++++++
 src/main/cpp/base/mocks/BUILD.bazel                | 16 ++++++++
 src/main/cpp/base/mocks/include/HttpClientMock.h   | 16 ++++++++
 .../cpp/base/mocks/include/MessageListenerMock.h   | 16 ++++++++
 src/main/cpp/client/BUILD.bazel                    | 16 ++++++++
 src/main/cpp/client/ClientConfigImpl.cpp           | 16 ++++++++
 src/main/cpp/client/ClientManagerFactory.cpp       | 16 ++++++++
 src/main/cpp/client/ClientManagerImpl.cpp          | 16 ++++++++
 src/main/cpp/client/LogInterceptor.cpp             | 16 ++++++++
 src/main/cpp/client/LogInterceptorFactory.cpp      | 16 ++++++++
 src/main/cpp/client/RpcClientImpl.cpp              | 16 ++++++++
 src/main/cpp/client/Signature.cpp                  | 16 ++++++++
 src/main/cpp/client/TlsHelper.cpp                  | 16 ++++++++
 src/main/cpp/client/TopicAssignmentInfo.cpp        | 16 ++++++++
 src/main/cpp/client/TopicPublishInfo.cpp           | 16 ++++++++
 src/main/cpp/client/TracingUtility.cpp             | 16 ++++++++
 src/main/cpp/client/include/Assignment.h           | 16 ++++++++
 src/main/cpp/client/include/Broker.h               | 16 ++++++++
 src/main/cpp/client/include/Client.h               | 16 ++++++++
 src/main/cpp/client/include/ClientConfig.h         | 16 ++++++++
 src/main/cpp/client/include/ClientConfigImpl.h     | 16 ++++++++
 src/main/cpp/client/include/ClientManager.h        | 16 ++++++++
 src/main/cpp/client/include/ClientManagerFactory.h | 16 ++++++++
 src/main/cpp/client/include/ClientManagerImpl.h    | 16 ++++++++
 src/main/cpp/client/include/ConsumeMessageType.h   | 16 ++++++++
 .../cpp/client/include/HeartbeatDataCallback.h     | 16 ++++++++
 .../cpp/client/include/InterceptorContinuation.h   | 16 ++++++++
 src/main/cpp/client/include/LogInterceptor.h       | 16 ++++++++
 .../cpp/client/include/LogInterceptorFactory.h     | 16 ++++++++
 src/main/cpp/client/include/OpenSSLCompatible.h    | 16 ++++++++
 .../cpp/client/include/OrphanTransactionCallback.h | 16 ++++++++
 src/main/cpp/client/include/Partition.h            | 16 ++++++++
 .../cpp/client/include/ReceiveMessageCallback.h    | 16 ++++++++
 src/main/cpp/client/include/ReceiveMessageResult.h | 16 ++++++++
 src/main/cpp/client/include/RpcClient.h            | 16 ++++++++
 src/main/cpp/client/include/RpcClientImpl.h        | 16 ++++++++
 src/main/cpp/client/include/SendMessageContext.h   | 16 ++++++++
 src/main/cpp/client/include/ServiceAddress.h       | 16 ++++++++
 src/main/cpp/client/include/Signature.h            | 16 ++++++++
 src/main/cpp/client/include/TlsHelper.h            | 16 ++++++++
 src/main/cpp/client/include/Topic.h                | 16 ++++++++
 src/main/cpp/client/include/TopicAssignmentInfo.h  | 16 ++++++++
 src/main/cpp/client/include/TopicPublishInfo.h     | 16 ++++++++
 .../cpp/client/include/TopicRouteChangeCallback.h  | 16 ++++++++
 src/main/cpp/client/include/TopicRouteData.h       | 16 ++++++++
 src/main/cpp/client/mocks/BUILD.bazel              | 16 ++++++++
 src/main/cpp/client/mocks/RpcClientMock.cpp        | 16 ++++++++
 .../cpp/client/mocks/include/ClientConfigMock.h    | 16 ++++++++
 .../cpp/client/mocks/include/ClientManagerMock.h   | 16 ++++++++
 src/main/cpp/client/mocks/include/ClientMock.h     | 16 ++++++++
 .../mocks/include/ReceiveMessageCallbackMock.h     | 16 ++++++++
 src/main/cpp/client/mocks/include/RpcClientMock.h  | 16 ++++++++
 src/main/cpp/concurrent/BUILD.bazel                | 16 ++++++++
 src/main/cpp/concurrent/CountdownLatch.cpp         | 16 ++++++++
 src/main/cpp/concurrent/include/CountdownLatch.h   | 16 ++++++++
 src/main/cpp/log/BUILD.bazel                       | 16 ++++++++
 src/main/cpp/log/LoggerImpl.cpp                    | 16 ++++++++
 src/main/cpp/log/include/LoggerImpl.h              | 16 ++++++++
 src/main/cpp/remoting/BUILD.bazel                  | 16 ++++++++
 src/main/cpp/remoting/BrokerData.cpp               | 16 ++++++++
 src/main/cpp/remoting/QueryRouteRequestHeader.cpp  | 16 ++++++++
 src/main/cpp/remoting/QueueData.cpp                | 16 ++++++++
 src/main/cpp/remoting/RemotingCommand.cpp          | 16 ++++++++
 src/main/cpp/remoting/TopicRouteData.cpp           | 16 ++++++++
 src/main/cpp/remoting/include/BrokerData.h         | 16 ++++++++
 .../cpp/remoting/include/CommandCustomHeader.h     | 16 ++++++++
 src/main/cpp/remoting/include/LanguageCode.h       | 16 ++++++++
 .../cpp/remoting/include/QueryRouteRequestHeader.h | 16 ++++++++
 src/main/cpp/remoting/include/QueueData.h          | 16 ++++++++
 src/main/cpp/remoting/include/RemotingCommand.h    | 16 ++++++++
 .../cpp/remoting/include/RemotingCommandType.h     | 16 ++++++++
 src/main/cpp/remoting/include/RequestCode.h        | 16 ++++++++
 src/main/cpp/remoting/include/ResponseCode.h       | 16 ++++++++
 src/main/cpp/remoting/include/TopicRouteData.h     | 16 ++++++++
 src/main/cpp/remoting/include/Version.h            | 16 ++++++++
 .../cpp/rocketmq/AsyncReceiveMessageCallback.cpp   | 16 ++++++++
 src/main/cpp/rocketmq/AwaitPullCallback.cpp        | 16 ++++++++
 src/main/cpp/rocketmq/BUILD.bazel                  | 16 ++++++++
 src/main/cpp/rocketmq/ClientImpl.cpp               | 16 ++++++++
 .../cpp/rocketmq/ConsumeFifoMessageService.cpp     | 16 ++++++++
 .../cpp/rocketmq/ConsumeMessageServiceBase.cpp     | 16 ++++++++
 .../cpp/rocketmq/ConsumeStandardMessageService.cpp | 16 ++++++++
 src/main/cpp/rocketmq/CredentialsProvider.cpp      | 16 ++++++++
 src/main/cpp/rocketmq/DefaultMQProducer.cpp        | 16 ++++++++
 src/main/cpp/rocketmq/DefaultMQPullConsumer.cpp    | 16 ++++++++
 src/main/cpp/rocketmq/DefaultMQPushConsumer.cpp    | 16 ++++++++
 .../cpp/rocketmq/DynamicNameServerResolver.cpp     | 16 ++++++++
 src/main/cpp/rocketmq/FilterExpression.cpp         | 16 ++++++++
 .../cpp/rocketmq/MessageGroupQueueSelector.cpp     | 16 ++++++++
 src/main/cpp/rocketmq/ProcessQueueImpl.cpp         | 16 ++++++++
 src/main/cpp/rocketmq/ProducerImpl.cpp             | 16 ++++++++
 src/main/cpp/rocketmq/PullConsumerImpl.cpp         | 16 ++++++++
 src/main/cpp/rocketmq/PushConsumerImpl.cpp         | 16 ++++++++
 src/main/cpp/rocketmq/SendCallbacks.cpp            | 16 ++++++++
 src/main/cpp/rocketmq/StaticNameServerResolver.cpp | 16 ++++++++
 src/main/cpp/rocketmq/TransactionImpl.cpp          | 16 ++++++++
 .../rocketmq/include/AsyncReceiveMessageCallback.h | 16 ++++++++
 src/main/cpp/rocketmq/include/AwaitPullCallback.h  | 16 ++++++++
 src/main/cpp/rocketmq/include/ClientImpl.h         | 16 ++++++++
 .../cpp/rocketmq/include/ClientResourceBundle.h    | 16 ++++++++
 .../rocketmq/include/ConsumeFifoMessageService.h   | 16 ++++++++
 .../cpp/rocketmq/include/ConsumeMessageService.h   | 16 ++++++++
 .../rocketmq/include/ConsumeMessageServiceBase.h   | 16 ++++++++
 .../include/ConsumeStandardMessageService.h        | 16 ++++++++
 src/main/cpp/rocketmq/include/Consumer.h           | 16 ++++++++
 .../rocketmq/include/DynamicNameServerResolver.h   | 16 ++++++++
 src/main/cpp/rocketmq/include/FilterExpression.h   | 16 ++++++++
 .../rocketmq/include/MessageGroupQueueSelector.h   | 16 ++++++++
 src/main/cpp/rocketmq/include/NameServerResolver.h | 16 ++++++++
 src/main/cpp/rocketmq/include/ProcessQueue.h       | 16 ++++++++
 src/main/cpp/rocketmq/include/ProcessQueueImpl.h   | 16 ++++++++
 src/main/cpp/rocketmq/include/ProducerImpl.h       | 16 ++++++++
 src/main/cpp/rocketmq/include/PullConsumerImpl.h   | 16 ++++++++
 src/main/cpp/rocketmq/include/PushConsumer.h       | 16 ++++++++
 src/main/cpp/rocketmq/include/PushConsumerImpl.h   | 16 ++++++++
 src/main/cpp/rocketmq/include/SendCallbacks.h      | 16 ++++++++
 .../rocketmq/include/StaticNameServerResolver.h    | 16 ++++++++
 .../rocketmq/include/StsCredentialsProviderImpl.h  | 16 ++++++++
 src/main/cpp/rocketmq/include/TransactionImpl.h    | 16 ++++++++
 src/main/cpp/rocketmq/mocks/BUILD.bazel            | 16 ++++++++
 .../mocks/include/ConsumeMessageServiceMock.h      | 16 ++++++++
 src/main/cpp/rocketmq/mocks/include/ConsumerMock.h | 16 ++++++++
 .../mocks/include/NameServerResolverMock.h         | 16 ++++++++
 .../cpp/rocketmq/mocks/include/ProcessQueueMock.h  | 16 ++++++++
 .../cpp/rocketmq/mocks/include/PushConsumerMock.h  | 16 ++++++++
 src/main/cpp/scheduler/BUILD.bazel                 | 16 ++++++++
 src/main/cpp/scheduler/SchedulerImpl.cpp           | 16 ++++++++
 src/main/cpp/scheduler/include/Scheduler.h         | 16 ++++++++
 src/main/cpp/scheduler/include/SchedulerImpl.h     | 16 ++++++++
 src/main/cpp/tracing/exporters/BUILD.bazel         | 16 ++++++++
 src/main/cpp/tracing/exporters/OtlpExporter.cpp    | 16 ++++++++
 .../cpp/tracing/exporters/include/OtlpExporter.h   | 16 ++++++++
 src/test/cpp/benchmark/BUILD.bazel                 | 16 ++++++++
 src/test/cpp/benchmark/BenchmarkTest.cpp           | 16 ++++++++
 src/test/cpp/it/BUILD.bazel                        | 16 ++++++++
 src/test/cpp/it/RpcClientTest.cpp                  | 16 ++++++++
 src/test/cpp/it/TopAddressingTest.cpp              | 16 ++++++++
 src/test/cpp/it/TopicPublishInfoTest.cpp           | 16 ++++++++
 src/test/cpp/ut/BUILD.bazel                        | 17 +++++++++
 src/test/cpp/ut/admin/AdminServerTest.cpp          | 16 ++++++++
 src/test/cpp/ut/admin/BUILD.bazel                  | 16 ++++++++
 src/test/cpp/ut/api/BUILD.bazel                    | 16 ++++++++
 src/test/cpp/ut/api/ErrorCodeTest.cpp              | 16 ++++++++
 src/test/cpp/ut/base/BUILD.bazel                   | 16 ++++++++
 src/test/cpp/ut/base/HistogramTest.cpp             | 16 ++++++++
 src/test/cpp/ut/base/HostInfoTest.cpp              | 16 ++++++++
 src/test/cpp/ut/base/HttpClientTest.cpp            | 16 ++++++++
 src/test/cpp/ut/base/InvocationContextTest.cpp     | 16 ++++++++
 src/test/cpp/ut/base/MQMessageExtTest.cpp          | 16 ++++++++
 src/test/cpp/ut/base/MQMessageTest.cpp             | 16 ++++++++
 src/test/cpp/ut/base/MixAllTest.cpp                | 16 ++++++++
 src/test/cpp/ut/base/RateLimiterTest.cpp           | 16 ++++++++
 src/test/cpp/ut/base/ThreadPoolTest.cpp            | 16 ++++++++
 src/test/cpp/ut/base/TopAddressingTest.cpp         | 16 ++++++++
 src/test/cpp/ut/base/UniqueIdGeneratorTest.cpp     | 16 ++++++++
 src/test/cpp/ut/base/UtilAllTest.cpp               | 16 ++++++++
 src/test/cpp/ut/client/BUILD.bazel                 | 16 ++++++++
 .../cpp/ut/client/ClientManagerFactoryTest.cpp     | 16 ++++++++
 src/test/cpp/ut/client/ClientManagerTest.cpp       | 16 ++++++++
 src/test/cpp/ut/client/ClientTest.cpp              | 16 ++++++++
 src/test/cpp/ut/client/RpcClientTest.cpp           | 16 ++++++++
 src/test/cpp/ut/client/TlsHelperTest.cpp           | 16 ++++++++
 src/test/cpp/ut/client/TopicAssignmentInfoTest.cpp | 16 ++++++++
 src/test/cpp/ut/client/TracingUtilityTest.cpp      | 16 ++++++++
 src/test/cpp/ut/concurrent/BUILD.bazel             | 16 ++++++++
 src/test/cpp/ut/concurrent/CountdownLatchTest.cpp  | 16 ++++++++
 src/test/cpp/ut/grpc/BUILD.bazel                   | 16 ++++++++
 src/test/cpp/ut/grpc/GrpcThreadPoolTest.cpp        | 16 ++++++++
 src/test/cpp/ut/grpc/GrpcTimer.cpp                 | 16 ++++++++
 src/test/cpp/ut/logger/BUILD.bazel                 | 16 ++++++++
 src/test/cpp/ut/logger/LoggerTest.cpp              | 16 ++++++++
 src/test/cpp/ut/remoting/BUILD.bazel               | 16 ++++++++
 src/test/cpp/ut/remoting/BrokerDataTest.cpp        | 16 ++++++++
 .../ut/remoting/QueryRouteRequestHeaderTest.cpp    | 16 ++++++++
 src/test/cpp/ut/remoting/QueueDataTest.cpp         | 16 ++++++++
 src/test/cpp/ut/remoting/RemotingCommandTest.cpp   | 16 ++++++++
 src/test/cpp/ut/remoting/TopicRouteDataTest.cpp    | 16 ++++++++
 src/test/cpp/ut/rocketmq/AwaitPullCallbackTest.cpp | 16 ++++++++
 src/test/cpp/ut/rocketmq/BUILD.bazel               | 16 ++++++++
 src/test/cpp/ut/rocketmq/ClientImplTest.cpp        | 16 ++++++++
 .../rocketmq/ConsumeStandardMessageServiceTest.cpp | 16 ++++++++
 src/test/cpp/ut/rocketmq/ConsumerTest.cpp          | 16 ++++++++
 .../cpp/ut/rocketmq/CredentialsProviderTest.cpp    | 16 ++++++++
 src/test/cpp/ut/rocketmq/DefaultMQProducerTest.cpp | 16 ++++++++
 .../cpp/ut/rocketmq/DefaultMQPushConsumerTest.cpp  | 16 ++++++++
 .../ut/rocketmq/DynamicNameServerResolverTest.cpp  | 16 ++++++++
 src/test/cpp/ut/rocketmq/ExecutorTest.cpp          | 16 ++++++++
 src/test/cpp/ut/rocketmq/FilterExpressionTest.cpp  | 16 ++++++++
 .../ut/rocketmq/MessageGroupQueueSelectorTest.cpp  | 16 ++++++++
 src/test/cpp/ut/rocketmq/MessageTest.cpp           | 16 ++++++++
 src/test/cpp/ut/rocketmq/ProcessQueueTest.cpp      | 16 ++++++++
 src/test/cpp/ut/rocketmq/ProducerImplTest.cpp      | 16 ++++++++
 src/test/cpp/ut/rocketmq/PullConsumerImplTest.cpp  | 16 ++++++++
 src/test/cpp/ut/rocketmq/PushConsumerImplTest.cpp  | 16 ++++++++
 src/test/cpp/ut/rocketmq/SendCallbacksTest.cpp     | 16 ++++++++
 .../ut/rocketmq/StaticNameServerResolverTest.cpp   | 16 ++++++++
 .../ut/rocketmq/StsCredentialsProviderImplTest.cpp | 16 ++++++++
 src/test/cpp/ut/rocketmq/include/MQClientTest.h    | 16 ++++++++
 src/test/cpp/ut/scheduler/BUILD.bazel              | 16 ++++++++
 src/test/cpp/ut/scheduler/SchedulerTest.cpp        | 16 ++++++++
 src/test/cpp/ut/tracing/exporters/BUILD.bazel      | 16 ++++++++
 .../cpp/ut/tracing/exporters/OtlpExportersTest.cpp | 16 ++++++++
 .../cpp/ut/tracing/exporters/SpanContextTest.cpp   | 16 ++++++++
 third_party/BUILD                                  |  0
 third_party/BUILD.bazel                            | 16 ++++++++
 tools/fix_copyright.py                             | 43 ++++++++++++++++------
 294 files changed, 4673 insertions(+), 22 deletions(-)

diff --git a/BUILD b/BUILD
deleted file mode 100644
index e69de29..0000000
diff --git a/BUILD.bazel b/BUILD.bazel
new file mode 100644
index 0000000..28e0699
--- /dev/null
+++ b/BUILD.bazel
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/api/BUILD.bazel b/api/BUILD.bazel
index 8693427..b7eb594 100644
--- a/api/BUILD.bazel
+++ b/api/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 
 cc_library(
diff --git a/api/rocketmq/AdminServer.h b/api/rocketmq/AdminServer.h
index afd5dee..11b9259 100644
--- a/api/rocketmq/AdminServer.h
+++ b/api/rocketmq/AdminServer.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "State.h"
diff --git a/api/rocketmq/AsyncCallback.h b/api/rocketmq/AsyncCallback.h
index 782b90c..0e7add7 100644
--- a/api/rocketmq/AsyncCallback.h
+++ b/api/rocketmq/AsyncCallback.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <system_error>
diff --git a/api/rocketmq/ConsumeType.h b/api/rocketmq/ConsumeType.h
index d0337dc..9c11a14 100644
--- a/api/rocketmq/ConsumeType.h
+++ b/api/rocketmq/ConsumeType.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/api/rocketmq/Credentials.h b/api/rocketmq/Credentials.h
index aba5fc7..27c895d 100644
--- a/api/rocketmq/Credentials.h
+++ b/api/rocketmq/Credentials.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/api/rocketmq/CredentialsProvider.h b/api/rocketmq/CredentialsProvider.h
index 0a61126..ffed508 100644
--- a/api/rocketmq/CredentialsProvider.h
+++ b/api/rocketmq/CredentialsProvider.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/api/rocketmq/DefaultMQProducer.h b/api/rocketmq/DefaultMQProducer.h
index 4110fd2..8c80f92 100644
--- a/api/rocketmq/DefaultMQProducer.h
+++ b/api/rocketmq/DefaultMQProducer.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/api/rocketmq/DefaultMQPullConsumer.h b/api/rocketmq/DefaultMQPullConsumer.h
index 9b7d3ef..959acd0 100644
--- a/api/rocketmq/DefaultMQPullConsumer.h
+++ b/api/rocketmq/DefaultMQPullConsumer.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/api/rocketmq/DefaultMQPushConsumer.h b/api/rocketmq/DefaultMQPushConsumer.h
index 28a4798..ced50bc 100644
--- a/api/rocketmq/DefaultMQPushConsumer.h
+++ b/api/rocketmq/DefaultMQPushConsumer.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <memory>
diff --git a/api/rocketmq/ErrorCategory.h b/api/rocketmq/ErrorCategory.h
index fe92816..432e660 100644
--- a/api/rocketmq/ErrorCategory.h
+++ b/api/rocketmq/ErrorCategory.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "ErrorCode.h"
diff --git a/api/rocketmq/ErrorCode.h b/api/rocketmq/ErrorCode.h
index af30780..1e0e261 100644
--- a/api/rocketmq/ErrorCode.h
+++ b/api/rocketmq/ErrorCode.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "RocketMQ.h"
diff --git a/api/rocketmq/Executor.h b/api/rocketmq/Executor.h
index ccd4e0f..a7321b5 100644
--- a/api/rocketmq/Executor.h
+++ b/api/rocketmq/Executor.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <functional>
diff --git a/api/rocketmq/ExpressionType.h b/api/rocketmq/ExpressionType.h
index fbf99ac..9418fea 100644
--- a/api/rocketmq/ExpressionType.h
+++ b/api/rocketmq/ExpressionType.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/api/rocketmq/LocalTransactionStateChecker.h b/api/rocketmq/LocalTransactionStateChecker.h
index 0badebe..78110bc 100644
--- a/api/rocketmq/LocalTransactionStateChecker.h
+++ b/api/rocketmq/LocalTransactionStateChecker.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <memory>
diff --git a/api/rocketmq/Logger.h b/api/rocketmq/Logger.h
index 5866199..86e20d7 100644
--- a/api/rocketmq/Logger.h
+++ b/api/rocketmq/Logger.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstddef>
diff --git a/api/rocketmq/MQClientException.h b/api/rocketmq/MQClientException.h
index 9e77bf7..115f5ab 100644
--- a/api/rocketmq/MQClientException.h
+++ b/api/rocketmq/MQClientException.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <exception>
diff --git a/api/rocketmq/MQMessage.h b/api/rocketmq/MQMessage.h
index 46c479c..da9b66f 100644
--- a/api/rocketmq/MQMessage.h
+++ b/api/rocketmq/MQMessage.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/api/rocketmq/MQMessageExt.h b/api/rocketmq/MQMessageExt.h
index ad5942e..688ef25 100644
--- a/api/rocketmq/MQMessageExt.h
+++ b/api/rocketmq/MQMessageExt.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/api/rocketmq/MQMessageQueue.h b/api/rocketmq/MQMessageQueue.h
index 6e84fa8..9e701b7 100644
--- a/api/rocketmq/MQMessageQueue.h
+++ b/api/rocketmq/MQMessageQueue.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <functional>
diff --git a/api/rocketmq/MQSelector.h b/api/rocketmq/MQSelector.h
index 029c6f8..edf5b7c 100644
--- a/api/rocketmq/MQSelector.h
+++ b/api/rocketmq/MQSelector.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <vector>
diff --git a/api/rocketmq/MessageListener.h b/api/rocketmq/MessageListener.h
index fbe6a19..03a963d 100644
--- a/api/rocketmq/MessageListener.h
+++ b/api/rocketmq/MessageListener.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "MQMessageExt.h"
diff --git a/api/rocketmq/MessageModel.h b/api/rocketmq/MessageModel.h
index 7227f52..74cdfa3 100644
--- a/api/rocketmq/MessageModel.h
+++ b/api/rocketmq/MessageModel.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "RocketMQ.h"
diff --git a/api/rocketmq/MessageType.h b/api/rocketmq/MessageType.h
index 3e04f3e..e4cc462 100644
--- a/api/rocketmq/MessageType.h
+++ b/api/rocketmq/MessageType.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/api/rocketmq/OffsetStore.h b/api/rocketmq/OffsetStore.h
index 309bc02..514d5da 100644
--- a/api/rocketmq/OffsetStore.h
+++ b/api/rocketmq/OffsetStore.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "MQMessageQueue.h"
diff --git a/api/rocketmq/PullResult.h b/api/rocketmq/PullResult.h
index 57e9890..ebc5448 100644
--- a/api/rocketmq/PullResult.h
+++ b/api/rocketmq/PullResult.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdlib>
diff --git a/api/rocketmq/RocketMQ.h b/api/rocketmq/RocketMQ.h
index 6c1f4d1..3b114e6 100644
--- a/api/rocketmq/RocketMQ.h
+++ b/api/rocketmq/RocketMQ.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #ifndef ROCKETMQ_NAMESPACE
diff --git a/api/rocketmq/SendResult.h b/api/rocketmq/SendResult.h
index 7765141..c7d4307 100644
--- a/api/rocketmq/SendResult.h
+++ b/api/rocketmq/SendResult.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <utility>
diff --git a/api/rocketmq/State.h b/api/rocketmq/State.h
index ec3c0a6..93a5061 100644
--- a/api/rocketmq/State.h
+++ b/api/rocketmq/State.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/api/rocketmq/Transaction.h b/api/rocketmq/Transaction.h
index 352fdad..867a210 100644
--- a/api/rocketmq/Transaction.h
+++ b/api/rocketmq/Transaction.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/bazel/BUILD b/bazel/BUILD
deleted file mode 100644
index e69de29..0000000
diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel
new file mode 100644
index 0000000..28e0699
--- /dev/null
+++ b/bazel/BUILD.bazel
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/example/rocketmq/BUILD.bazel b/example/rocketmq/BUILD.bazel
index f0853ba..a2b2dd3 100644
--- a/example/rocketmq/BUILD.bazel
+++ b/example/rocketmq/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_binary")
 
 cc_binary(
diff --git a/example/rocketmq/BenchmarkPushConsumer.cpp b/example/rocketmq/BenchmarkPushConsumer.cpp
index 3585b4e..ab74e09 100644
--- a/example/rocketmq/BenchmarkPushConsumer.cpp
+++ b/example/rocketmq/BenchmarkPushConsumer.cpp
@@ -1,4 +1,19 @@
-#include "rocketmq/DefaultMQPushConsumer.h"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include "rocketmq/DefaultMQPushConsumer.h"
 
 #include <atomic>
 #include <chrono>
diff --git a/example/rocketmq/ExampleAsyncProducer.cpp b/example/rocketmq/ExampleAsyncProducer.cpp
index 3bf3801..1c624cd 100644
--- a/example/rocketmq/ExampleAsyncProducer.cpp
+++ b/example/rocketmq/ExampleAsyncProducer.cpp
@@ -1,4 +1,19 @@
-#include "rocketmq/DefaultMQProducer.h"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include "rocketmq/DefaultMQProducer.h"
 #include "rocketmq/ErrorCode.h"
 #include <algorithm>
 #include <array>
diff --git a/example/rocketmq/ExampleBroadcastPushConsumer.cpp b/example/rocketmq/ExampleBroadcastPushConsumer.cpp
index 64b527a..2afda66 100644
--- a/example/rocketmq/ExampleBroadcastPushConsumer.cpp
+++ b/example/rocketmq/ExampleBroadcastPushConsumer.cpp
@@ -1,4 +1,19 @@
-#include "rocketmq/DefaultMQPushConsumer.h"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include "rocketmq/DefaultMQPushConsumer.h"
 
 #include "rocketmq/Logger.h"
 #include "spdlog/spdlog.h"
diff --git a/example/rocketmq/ExampleProducer.cpp b/example/rocketmq/ExampleProducer.cpp
index 6452509..7e15364 100644
--- a/example/rocketmq/ExampleProducer.cpp
+++ b/example/rocketmq/ExampleProducer.cpp
@@ -1,4 +1,19 @@
-#include "rocketmq/DefaultMQProducer.h"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include "rocketmq/DefaultMQProducer.h"
 #include <algorithm>
 #include <atomic>
 #include <iostream>
diff --git a/example/rocketmq/ExamplePullConsumer.cpp b/example/rocketmq/ExamplePullConsumer.cpp
index cd745ff..2b87b10 100644
--- a/example/rocketmq/ExamplePullConsumer.cpp
+++ b/example/rocketmq/ExamplePullConsumer.cpp
@@ -1,4 +1,19 @@
-#include <cstdlib>
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include <cstdlib>
 #include <iostream>
 
 #include "rocketmq/CredentialsProvider.h"
diff --git a/example/rocketmq/ExamplePushConsumer.cpp b/example/rocketmq/ExamplePushConsumer.cpp
index c792c9c..5dc0df3 100644
--- a/example/rocketmq/ExamplePushConsumer.cpp
+++ b/example/rocketmq/ExamplePushConsumer.cpp
@@ -1,4 +1,19 @@
-#include <chrono>
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include <chrono>
 #include <iostream>
 #include <mutex>
 #include <thread>
diff --git a/example/rocketmq/ExampleTransactionProducer.cpp b/example/rocketmq/ExampleTransactionProducer.cpp
index 04646cf..bc125ae 100644
--- a/example/rocketmq/ExampleTransactionProducer.cpp
+++ b/example/rocketmq/ExampleTransactionProducer.cpp
@@ -1,4 +1,19 @@
-#include "rocketmq/DefaultMQProducer.h"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include "rocketmq/DefaultMQProducer.h"
 #include <cstdlib>
 
 using namespace ROCKETMQ_NAMESPACE;
diff --git a/example/rocketmq/PushConsumerWithCustomExecutor.cpp b/example/rocketmq/PushConsumerWithCustomExecutor.cpp
index 000d889..9d6e8a9 100644
--- a/example/rocketmq/PushConsumerWithCustomExecutor.cpp
+++ b/example/rocketmq/PushConsumerWithCustomExecutor.cpp
@@ -1,4 +1,19 @@
-#include "rocketmq/DefaultMQPushConsumer.h"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include "rocketmq/DefaultMQPushConsumer.h"
 #include "rocketmq/State.h"
 #include <atomic>
 #include <chrono>
diff --git a/example/rocketmq/PushConsumerWithThrottle.cpp b/example/rocketmq/PushConsumerWithThrottle.cpp
index e8969cf..d7b24cd 100644
--- a/example/rocketmq/PushConsumerWithThrottle.cpp
+++ b/example/rocketmq/PushConsumerWithThrottle.cpp
@@ -1,4 +1,19 @@
-#include "rocketmq/DefaultMQPushConsumer.h"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include "rocketmq/DefaultMQPushConsumer.h"
 
 #include <atomic>
 #include <chrono>
diff --git a/example/rocketmq/SqlConsumer.cpp b/example/rocketmq/SqlConsumer.cpp
index 82b54df..a4a739d 100644
--- a/example/rocketmq/SqlConsumer.cpp
+++ b/example/rocketmq/SqlConsumer.cpp
@@ -1,4 +1,19 @@
-#include "rocketmq/DefaultMQPushConsumer.h"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include "rocketmq/DefaultMQPushConsumer.h"
 
 #include <chrono>
 #include <iostream>
diff --git a/example/rocketmq/SqlProducer.cpp b/example/rocketmq/SqlProducer.cpp
index f9bbe1c..02a0209 100644
--- a/example/rocketmq/SqlProducer.cpp
+++ b/example/rocketmq/SqlProducer.cpp
@@ -1,4 +1,19 @@
-#include "rocketmq/DefaultMQProducer.h"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */#include "rocketmq/DefaultMQProducer.h"
 #include <iostream>
 
 using namespace rocketmq;
diff --git a/proto/BUILD.bazel b/proto/BUILD.bazel
index 0863bd8..3416bf4 100644
--- a/proto/BUILD.bazel
+++ b/proto/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_proto//proto:defs.bzl", "proto_library")
 load("@rules_cc//cc:defs.bzl", "cc_proto_library")
 load("@rules_proto_grpc//cpp:defs.bzl", "cpp_grpc_library", "cpp_grpc_compile")
diff --git a/src/main/cpp/admin/AdminClient.cpp b/src/main/cpp/admin/AdminClient.cpp
index 2900d69..e7f260c 100644
--- a/src/main/cpp/admin/AdminClient.cpp
+++ b/src/main/cpp/admin/AdminClient.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "AdminClient.h"
 #include "rocketmq/RocketMQ.h"
 
diff --git a/src/main/cpp/admin/AdminFacade.cpp b/src/main/cpp/admin/AdminFacade.cpp
index 314b59b..a17479c 100644
--- a/src/main/cpp/admin/AdminFacade.cpp
+++ b/src/main/cpp/admin/AdminFacade.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "AdminServerImpl.h"
 
 using namespace ROCKETMQ_NAMESPACE::admin;
diff --git a/src/main/cpp/admin/AdminServerImpl.cpp b/src/main/cpp/admin/AdminServerImpl.cpp
index d77b4fb..a41c520 100644
--- a/src/main/cpp/admin/AdminServerImpl.cpp
+++ b/src/main/cpp/admin/AdminServerImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "AdminServerImpl.h"
 
 #include "AdminServiceImpl.h"
diff --git a/src/main/cpp/admin/AdminServiceImpl.cpp b/src/main/cpp/admin/AdminServiceImpl.cpp
index 283ef53..f7ab19f 100644
--- a/src/main/cpp/admin/AdminServiceImpl.cpp
+++ b/src/main/cpp/admin/AdminServiceImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "AdminServiceImpl.h"
 #include "spdlog/spdlog.h"
 
diff --git a/src/main/cpp/admin/BUILD.bazel b/src/main/cpp/admin/BUILD.bazel
index 1e18e46..1e8efe9 100644
--- a/src/main/cpp/admin/BUILD.bazel
+++ b/src/main/cpp/admin/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library", "cc_binary")
 cc_library(
     name = "admin_server_library",
diff --git a/src/main/cpp/admin/include/AdminClient.h b/src/main/cpp/admin/include/AdminClient.h
index 9878f33..da99e58 100644
--- a/src/main/cpp/admin/include/AdminClient.h
+++ b/src/main/cpp/admin/include/AdminClient.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 #include "apache/rocketmq/v1/admin.grpc.pb.h"
 #include "rocketmq/RocketMQ.h"
diff --git a/src/main/cpp/admin/include/AdminServerImpl.h b/src/main/cpp/admin/include/AdminServerImpl.h
index ea4b941..c396a13 100644
--- a/src/main/cpp/admin/include/AdminServerImpl.h
+++ b/src/main/cpp/admin/include/AdminServerImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "AdminServiceImpl.h"
diff --git a/src/main/cpp/admin/include/AdminServiceImpl.h b/src/main/cpp/admin/include/AdminServiceImpl.h
index 2fa865a..78c3980 100644
--- a/src/main/cpp/admin/include/AdminServiceImpl.h
+++ b/src/main/cpp/admin/include/AdminServiceImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 #include "apache/rocketmq/v1/admin.grpc.pb.h"
 #include "rocketmq/RocketMQ.h"
diff --git a/src/main/cpp/admin/include/ServerCall.h b/src/main/cpp/admin/include/ServerCall.h
index 297b6f1..0c20ca7 100644
--- a/src/main/cpp/admin/include/ServerCall.h
+++ b/src/main/cpp/admin/include/ServerCall.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cassert>
diff --git a/src/main/cpp/base/BUILD.bazel b/src/main/cpp/base/BUILD.bazel
index 1d99854..5c7ab81 100644
--- a/src/main/cpp/base/BUILD.bazel
+++ b/src/main/cpp/base/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 
 package(default_visibility = ["//visibility:public"])
diff --git a/src/main/cpp/base/ErrorCategory.cpp b/src/main/cpp/base/ErrorCategory.cpp
index dec6772..9110f59 100644
--- a/src/main/cpp/base/ErrorCategory.cpp
+++ b/src/main/cpp/base/ErrorCategory.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/ErrorCategory.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
diff --git a/src/main/cpp/base/ErrorCode.cpp b/src/main/cpp/base/ErrorCode.cpp
index b6e44dc..7d8be7d 100644
--- a/src/main/cpp/base/ErrorCode.cpp
+++ b/src/main/cpp/base/ErrorCode.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/ErrorCategory.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
diff --git a/src/main/cpp/base/HostInfo.cpp b/src/main/cpp/base/HostInfo.cpp
index 89c9a52..160e0b0 100644
--- a/src/main/cpp/base/HostInfo.cpp
+++ b/src/main/cpp/base/HostInfo.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "HostInfo.h"
 #include "absl/strings/match.h"
 #include "rocketmq/RocketMQ.h"
diff --git a/src/main/cpp/base/HttpClientImpl.cpp b/src/main/cpp/base/HttpClientImpl.cpp
index d4b4843..2bf8a5f 100644
--- a/src/main/cpp/base/HttpClientImpl.cpp
+++ b/src/main/cpp/base/HttpClientImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "HttpClientImpl.h"
 
 #include <memory>
diff --git a/src/main/cpp/base/MQMessage.cpp b/src/main/cpp/base/MQMessage.cpp
index 3dd4ca5..9af46ec 100644
--- a/src/main/cpp/base/MQMessage.cpp
+++ b/src/main/cpp/base/MQMessage.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/MQMessage.h"
 #include "MessageAccessor.h"
 #include "MessageImpl.h"
diff --git a/src/main/cpp/base/MQMessageExt.cpp b/src/main/cpp/base/MQMessageExt.cpp
index af51271..ed9009c 100644
--- a/src/main/cpp/base/MQMessageExt.cpp
+++ b/src/main/cpp/base/MQMessageExt.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/MQMessageExt.h"
 #include "MessageImpl.h"
 
diff --git a/src/main/cpp/base/MessageAccessor.cpp b/src/main/cpp/base/MessageAccessor.cpp
index 5ed5878..1a2e0c0 100644
--- a/src/main/cpp/base/MessageAccessor.cpp
+++ b/src/main/cpp/base/MessageAccessor.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "MessageAccessor.h"
 #include "MessageImpl.h"
 #include "rocketmq/MQMessage.h"
diff --git a/src/main/cpp/base/MetadataConstants.cpp b/src/main/cpp/base/MetadataConstants.cpp
index 4277724..39022d9 100644
--- a/src/main/cpp/base/MetadataConstants.cpp
+++ b/src/main/cpp/base/MetadataConstants.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "MetadataConstants.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
diff --git a/src/main/cpp/base/MixAll.cpp b/src/main/cpp/base/MixAll.cpp
index b643203..b69c566 100644
--- a/src/main/cpp/base/MixAll.cpp
+++ b/src/main/cpp/base/MixAll.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "MixAll.h"
 
 #include <chrono>
diff --git a/src/main/cpp/base/Protocol.cpp b/src/main/cpp/base/Protocol.cpp
index 563ef3e..d82ebba 100644
--- a/src/main/cpp/base/Protocol.cpp
+++ b/src/main/cpp/base/Protocol.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "Protocol.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
diff --git a/src/main/cpp/base/RateLimiter.cpp b/src/main/cpp/base/RateLimiter.cpp
index e53bfb8..a0b48fb 100644
--- a/src/main/cpp/base/RateLimiter.cpp
+++ b/src/main/cpp/base/RateLimiter.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "RateLimiter.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
diff --git a/src/main/cpp/base/ThreadPoolImpl.cpp b/src/main/cpp/base/ThreadPoolImpl.cpp
index ab2b8f3..4ab1c29 100644
--- a/src/main/cpp/base/ThreadPoolImpl.cpp
+++ b/src/main/cpp/base/ThreadPoolImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ThreadPoolImpl.h"
 #include "absl/memory/memory.h"
 #include "asio/executor_work_guard.hpp"
diff --git a/src/main/cpp/base/TopAddressing.cpp b/src/main/cpp/base/TopAddressing.cpp
index af6cbab..6d2bcf5 100644
--- a/src/main/cpp/base/TopAddressing.cpp
+++ b/src/main/cpp/base/TopAddressing.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TopAddressing.h"
 
 #include "HttpClientImpl.h"
diff --git a/src/main/cpp/base/UniqueIdGenerator.cpp b/src/main/cpp/base/UniqueIdGenerator.cpp
index 05f8a5d..afc5daa 100644
--- a/src/main/cpp/base/UniqueIdGenerator.cpp
+++ b/src/main/cpp/base/UniqueIdGenerator.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "UniqueIdGenerator.h"
 #include "LoggerImpl.h"
 #include "MixAll.h"
diff --git a/src/main/cpp/base/UtilAll.cpp b/src/main/cpp/base/UtilAll.cpp
index 5753edc..bd15377 100644
--- a/src/main/cpp/base/UtilAll.cpp
+++ b/src/main/cpp/base/UtilAll.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "UtilAll.h"
 
 #include "LoggerImpl.h"
diff --git a/src/main/cpp/base/include/DigestType.h b/src/main/cpp/base/include/DigestType.h
index 5416ffb..12ba38c 100644
--- a/src/main/cpp/base/include/DigestType.h
+++ b/src/main/cpp/base/include/DigestType.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/base/include/Encoding.h b/src/main/cpp/base/include/Encoding.h
index a4a0efa..16e7ac5 100644
--- a/src/main/cpp/base/include/Encoding.h
+++ b/src/main/cpp/base/include/Encoding.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/base/include/Histogram.h b/src/main/cpp/base/include/Histogram.h
index 6254d76..50084d7 100644
--- a/src/main/cpp/base/include/Histogram.h
+++ b/src/main/cpp/base/include/Histogram.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <atomic>
diff --git a/src/main/cpp/base/include/HostInfo.h b/src/main/cpp/base/include/HostInfo.h
index 301970f..4516a17 100644
--- a/src/main/cpp/base/include/HostInfo.h
+++ b/src/main/cpp/base/include/HostInfo.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/base/include/HttpClient.h b/src/main/cpp/base/include/HttpClient.h
index 6f4cfee..94a3166 100644
--- a/src/main/cpp/base/include/HttpClient.h
+++ b/src/main/cpp/base/include/HttpClient.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/base/include/HttpClientImpl.h b/src/main/cpp/base/include/HttpClientImpl.h
index bf93b0c..d7035d1 100644
--- a/src/main/cpp/base/include/HttpClientImpl.h
+++ b/src/main/cpp/base/include/HttpClientImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "absl/base/thread_annotations.h"
diff --git a/src/main/cpp/base/include/InvocationContext.h b/src/main/cpp/base/include/InvocationContext.h
index bf6788c..4cb7e88 100644
--- a/src/main/cpp/base/include/InvocationContext.h
+++ b/src/main/cpp/base/include/InvocationContext.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <atomic>
diff --git a/src/main/cpp/base/include/MessageAccessor.h b/src/main/cpp/base/include/MessageAccessor.h
index 9e1b3b8..f45f36d 100644
--- a/src/main/cpp/base/include/MessageAccessor.h
+++ b/src/main/cpp/base/include/MessageAccessor.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "rocketmq/MQMessageExt.h"
diff --git a/src/main/cpp/base/include/MessageImpl.h b/src/main/cpp/base/include/MessageImpl.h
index 8572a07..f03186f 100644
--- a/src/main/cpp/base/include/MessageImpl.h
+++ b/src/main/cpp/base/include/MessageImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <map>
diff --git a/src/main/cpp/base/include/MetadataConstants.h b/src/main/cpp/base/include/MetadataConstants.h
index a9dde76..199c072 100644
--- a/src/main/cpp/base/include/MetadataConstants.h
+++ b/src/main/cpp/base/include/MetadataConstants.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "rocketmq/RocketMQ.h"
diff --git a/src/main/cpp/base/include/MixAll.h b/src/main/cpp/base/include/MixAll.h
index f201fb5..02b8e63 100644
--- a/src/main/cpp/base/include/MixAll.h
+++ b/src/main/cpp/base/include/MixAll.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/src/main/cpp/base/include/Protocol.h b/src/main/cpp/base/include/Protocol.h
index 8ab32ab..44a9c9d 100644
--- a/src/main/cpp/base/include/Protocol.h
+++ b/src/main/cpp/base/include/Protocol.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/src/main/cpp/base/include/RateLimiter.h b/src/main/cpp/base/include/RateLimiter.h
index a3026a6..05c2ed6 100644
--- a/src/main/cpp/base/include/RateLimiter.h
+++ b/src/main/cpp/base/include/RateLimiter.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <array>
diff --git a/src/main/cpp/base/include/ThreadPool.h b/src/main/cpp/base/include/ThreadPool.h
index 967ad26..0dc75b5 100644
--- a/src/main/cpp/base/include/ThreadPool.h
+++ b/src/main/cpp/base/include/ThreadPool.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <functional>
diff --git a/src/main/cpp/base/include/ThreadPoolImpl.h b/src/main/cpp/base/include/ThreadPoolImpl.h
index fad9204..2039239 100644
--- a/src/main/cpp/base/include/ThreadPoolImpl.h
+++ b/src/main/cpp/base/include/ThreadPoolImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <atomic>
diff --git a/src/main/cpp/base/include/TopAddressing.h b/src/main/cpp/base/include/TopAddressing.h
index c013e7a..52400e6 100644
--- a/src/main/cpp/base/include/TopAddressing.h
+++ b/src/main/cpp/base/include/TopAddressing.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cassert>
diff --git a/src/main/cpp/base/include/UniqueIdGenerator.h b/src/main/cpp/base/include/UniqueIdGenerator.h
index ec6cf50..1313b85 100644
--- a/src/main/cpp/base/include/UniqueIdGenerator.h
+++ b/src/main/cpp/base/include/UniqueIdGenerator.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/src/main/cpp/base/include/UtilAll.h b/src/main/cpp/base/include/UtilAll.h
index 83c2b8b..6c840bb 100644
--- a/src/main/cpp/base/include/UtilAll.h
+++ b/src/main/cpp/base/include/UtilAll.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/base/mocks/BUILD.bazel b/src/main/cpp/base/mocks/BUILD.bazel
index b50f88c..be924e7 100644
--- a/src/main/cpp/base/mocks/BUILD.bazel
+++ b/src/main/cpp/base/mocks/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 package(default_visibility = ["//visibility:public"])
 
diff --git a/src/main/cpp/base/mocks/include/HttpClientMock.h b/src/main/cpp/base/mocks/include/HttpClientMock.h
index 6b76cb4..69d59d2 100644
--- a/src/main/cpp/base/mocks/include/HttpClientMock.h
+++ b/src/main/cpp/base/mocks/include/HttpClientMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "HttpClient.h"
diff --git a/src/main/cpp/base/mocks/include/MessageListenerMock.h b/src/main/cpp/base/mocks/include/MessageListenerMock.h
index 81da855..9c82053 100644
--- a/src/main/cpp/base/mocks/include/MessageListenerMock.h
+++ b/src/main/cpp/base/mocks/include/MessageListenerMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "rocketmq/MessageListener.h"
diff --git a/src/main/cpp/client/BUILD.bazel b/src/main/cpp/client/BUILD.bazel
index a19626e..c56f279 100644
--- a/src/main/cpp/client/BUILD.bazel
+++ b/src/main/cpp/client/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 package(default_visibility = ["//visibility:public"])
 
diff --git a/src/main/cpp/client/ClientConfigImpl.cpp b/src/main/cpp/client/ClientConfigImpl.cpp
index fe7303d..e83d132 100644
--- a/src/main/cpp/client/ClientConfigImpl.cpp
+++ b/src/main/cpp/client/ClientConfigImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ClientConfigImpl.h"
 
 #include <chrono>
diff --git a/src/main/cpp/client/ClientManagerFactory.cpp b/src/main/cpp/client/ClientManagerFactory.cpp
index 2ba6be1..3b4100a 100644
--- a/src/main/cpp/client/ClientManagerFactory.cpp
+++ b/src/main/cpp/client/ClientManagerFactory.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ClientManagerFactory.h"
 #include "ClientManagerImpl.h"
 
diff --git a/src/main/cpp/client/ClientManagerImpl.cpp b/src/main/cpp/client/ClientManagerImpl.cpp
index d0143e5..c6c86a6 100644
--- a/src/main/cpp/client/ClientManagerImpl.cpp
+++ b/src/main/cpp/client/ClientManagerImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ClientManagerImpl.h"
 
 #include <atomic>
diff --git a/src/main/cpp/client/LogInterceptor.cpp b/src/main/cpp/client/LogInterceptor.cpp
index 306a8df..215b10f 100644
--- a/src/main/cpp/client/LogInterceptor.cpp
+++ b/src/main/cpp/client/LogInterceptor.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "LogInterceptor.h"
 #include "InterceptorContinuation.h"
 #include "absl/container/flat_hash_map.h"
diff --git a/src/main/cpp/client/LogInterceptorFactory.cpp b/src/main/cpp/client/LogInterceptorFactory.cpp
index 23c8d83..40bf565 100644
--- a/src/main/cpp/client/LogInterceptorFactory.cpp
+++ b/src/main/cpp/client/LogInterceptorFactory.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "LogInterceptorFactory.h"
 #include "LogInterceptor.h"
 
diff --git a/src/main/cpp/client/RpcClientImpl.cpp b/src/main/cpp/client/RpcClientImpl.cpp
index cabced2..650c716 100644
--- a/src/main/cpp/client/RpcClientImpl.cpp
+++ b/src/main/cpp/client/RpcClientImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "RpcClientImpl.h"
 
 #include <chrono>
diff --git a/src/main/cpp/client/Signature.cpp b/src/main/cpp/client/Signature.cpp
index 3aee816..3a4f02f 100644
--- a/src/main/cpp/client/Signature.cpp
+++ b/src/main/cpp/client/Signature.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "Signature.h"
 #include "ClientConfigImpl.h"
 #include "MetadataConstants.h"
diff --git a/src/main/cpp/client/TlsHelper.cpp b/src/main/cpp/client/TlsHelper.cpp
index aaa0cd6..ac13f85 100644
--- a/src/main/cpp/client/TlsHelper.cpp
+++ b/src/main/cpp/client/TlsHelper.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TlsHelper.h"
 
 #include "MixAll.h"
diff --git a/src/main/cpp/client/TopicAssignmentInfo.cpp b/src/main/cpp/client/TopicAssignmentInfo.cpp
index 3df6724..e6682cb 100644
--- a/src/main/cpp/client/TopicAssignmentInfo.cpp
+++ b/src/main/cpp/client/TopicAssignmentInfo.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TopicAssignmentInfo.h"
 #include "rocketmq/RocketMQ.h"
 #include "spdlog/spdlog.h"
diff --git a/src/main/cpp/client/TopicPublishInfo.cpp b/src/main/cpp/client/TopicPublishInfo.cpp
index 657d086..5f32d41 100644
--- a/src/main/cpp/client/TopicPublishInfo.cpp
+++ b/src/main/cpp/client/TopicPublishInfo.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TopicPublishInfo.h"
 #include "TopicRouteData.h"
 
diff --git a/src/main/cpp/client/TracingUtility.cpp b/src/main/cpp/client/TracingUtility.cpp
index 6f4af46..c2ccdc2 100644
--- a/src/main/cpp/client/TracingUtility.cpp
+++ b/src/main/cpp/client/TracingUtility.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #ifdef ENABLE_TRACING
 #include "TracingUtility.h"
 #include <utility>
diff --git a/src/main/cpp/client/include/Assignment.h b/src/main/cpp/client/include/Assignment.h
index 454a61b..b937118 100644
--- a/src/main/cpp/client/include/Assignment.h
+++ b/src/main/cpp/client/include/Assignment.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <map>
diff --git a/src/main/cpp/client/include/Broker.h b/src/main/cpp/client/include/Broker.h
index 5464a1d..17c96ff 100644
--- a/src/main/cpp/client/include/Broker.h
+++ b/src/main/cpp/client/include/Broker.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <memory>
diff --git a/src/main/cpp/client/include/Client.h b/src/main/cpp/client/include/Client.h
index 917115d..553284e 100644
--- a/src/main/cpp/client/include/Client.h
+++ b/src/main/cpp/client/include/Client.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <functional>
diff --git a/src/main/cpp/client/include/ClientConfig.h b/src/main/cpp/client/include/ClientConfig.h
index ec3f529..8cff8c4 100644
--- a/src/main/cpp/client/include/ClientConfig.h
+++ b/src/main/cpp/client/include/ClientConfig.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/client/include/ClientConfigImpl.h b/src/main/cpp/client/include/ClientConfigImpl.h
index 5a3d30b..06bf5e4 100644
--- a/src/main/cpp/client/include/ClientConfigImpl.h
+++ b/src/main/cpp/client/include/ClientConfigImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <atomic>
diff --git a/src/main/cpp/client/include/ClientManager.h b/src/main/cpp/client/include/ClientManager.h
index 9212564..50ab4ac 100644
--- a/src/main/cpp/client/include/ClientManager.h
+++ b/src/main/cpp/client/include/ClientManager.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/src/main/cpp/client/include/ClientManagerFactory.h b/src/main/cpp/client/include/ClientManagerFactory.h
index d1baf85..0a4dbd0 100644
--- a/src/main/cpp/client/include/ClientManagerFactory.h
+++ b/src/main/cpp/client/include/ClientManagerFactory.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/client/include/ClientManagerImpl.h b/src/main/cpp/client/include/ClientManagerImpl.h
index 086a4e1..77ec31c 100644
--- a/src/main/cpp/client/include/ClientManagerImpl.h
+++ b/src/main/cpp/client/include/ClientManagerImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <atomic>
diff --git a/src/main/cpp/client/include/ConsumeMessageType.h b/src/main/cpp/client/include/ConsumeMessageType.h
index ae0909f..8768f12 100644
--- a/src/main/cpp/client/include/ConsumeMessageType.h
+++ b/src/main/cpp/client/include/ConsumeMessageType.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/client/include/HeartbeatDataCallback.h b/src/main/cpp/client/include/HeartbeatDataCallback.h
index f105c70..81d0689 100644
--- a/src/main/cpp/client/include/HeartbeatDataCallback.h
+++ b/src/main/cpp/client/include/HeartbeatDataCallback.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "RpcClient.h"
diff --git a/src/main/cpp/client/include/InterceptorContinuation.h b/src/main/cpp/client/include/InterceptorContinuation.h
index d7578c9..b243f83 100644
--- a/src/main/cpp/client/include/InterceptorContinuation.h
+++ b/src/main/cpp/client/include/InterceptorContinuation.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "grpcpp/impl/codegen/interceptor.h"
diff --git a/src/main/cpp/client/include/LogInterceptor.h b/src/main/cpp/client/include/LogInterceptor.h
index 809a24c..6fa9773 100644
--- a/src/main/cpp/client/include/LogInterceptor.h
+++ b/src/main/cpp/client/include/LogInterceptor.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "grpcpp/impl/codegen/client_interceptor.h"
 
 #include "rocketmq/RocketMQ.h"
diff --git a/src/main/cpp/client/include/LogInterceptorFactory.h b/src/main/cpp/client/include/LogInterceptorFactory.h
index 85c0719..533fedf 100644
--- a/src/main/cpp/client/include/LogInterceptorFactory.h
+++ b/src/main/cpp/client/include/LogInterceptorFactory.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "grpcpp/impl/codegen/client_interceptor.h"
diff --git a/src/main/cpp/client/include/OpenSSLCompatible.h b/src/main/cpp/client/include/OpenSSLCompatible.h
index e64b95b..9ca0146 100644
--- a/src/main/cpp/client/include/OpenSSLCompatible.h
+++ b/src/main/cpp/client/include/OpenSSLCompatible.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 /**
diff --git a/src/main/cpp/client/include/OrphanTransactionCallback.h b/src/main/cpp/client/include/OrphanTransactionCallback.h
index b320650..8a843e0 100644
--- a/src/main/cpp/client/include/OrphanTransactionCallback.h
+++ b/src/main/cpp/client/include/OrphanTransactionCallback.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "rocketmq/MQMessage.h"
diff --git a/src/main/cpp/client/include/Partition.h b/src/main/cpp/client/include/Partition.h
index d11018f..3502523 100644
--- a/src/main/cpp/client/include/Partition.h
+++ b/src/main/cpp/client/include/Partition.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "Broker.h"
diff --git a/src/main/cpp/client/include/ReceiveMessageCallback.h b/src/main/cpp/client/include/ReceiveMessageCallback.h
index 6eba0e3..631efa3 100644
--- a/src/main/cpp/client/include/ReceiveMessageCallback.h
+++ b/src/main/cpp/client/include/ReceiveMessageCallback.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <system_error>
diff --git a/src/main/cpp/client/include/ReceiveMessageResult.h b/src/main/cpp/client/include/ReceiveMessageResult.h
index e53607a..05a1150 100644
--- a/src/main/cpp/client/include/ReceiveMessageResult.h
+++ b/src/main/cpp/client/include/ReceiveMessageResult.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/client/include/RpcClient.h b/src/main/cpp/client/include/RpcClient.h
index 2b93a08..c7add8a 100644
--- a/src/main/cpp/client/include/RpcClient.h
+++ b/src/main/cpp/client/include/RpcClient.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/src/main/cpp/client/include/RpcClientImpl.h b/src/main/cpp/client/include/RpcClientImpl.h
index e478dda..15243ed 100644
--- a/src/main/cpp/client/include/RpcClientImpl.h
+++ b/src/main/cpp/client/include/RpcClientImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <memory>
diff --git a/src/main/cpp/client/include/SendMessageContext.h b/src/main/cpp/client/include/SendMessageContext.h
index 9a4c36c..9a563e8 100644
--- a/src/main/cpp/client/include/SendMessageContext.h
+++ b/src/main/cpp/client/include/SendMessageContext.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/client/include/ServiceAddress.h b/src/main/cpp/client/include/ServiceAddress.h
index 0708fed..24a587b 100644
--- a/src/main/cpp/client/include/ServiceAddress.h
+++ b/src/main/cpp/client/include/ServiceAddress.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/client/include/Signature.h b/src/main/cpp/client/include/Signature.h
index 7d9c0c4..c1e116e 100644
--- a/src/main/cpp/client/include/Signature.h
+++ b/src/main/cpp/client/include/Signature.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "absl/container/flat_hash_map.h"
diff --git a/src/main/cpp/client/include/TlsHelper.h b/src/main/cpp/client/include/TlsHelper.h
index b55a982..c0176c7 100644
--- a/src/main/cpp/client/include/TlsHelper.h
+++ b/src/main/cpp/client/include/TlsHelper.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "rocketmq/RocketMQ.h"
diff --git a/src/main/cpp/client/include/Topic.h b/src/main/cpp/client/include/Topic.h
index 20b90e3..9c3ae18 100644
--- a/src/main/cpp/client/include/Topic.h
+++ b/src/main/cpp/client/include/Topic.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/client/include/TopicAssignmentInfo.h b/src/main/cpp/client/include/TopicAssignmentInfo.h
index fdad08e..8162e1d 100644
--- a/src/main/cpp/client/include/TopicAssignmentInfo.h
+++ b/src/main/cpp/client/include/TopicAssignmentInfo.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <atomic>
diff --git a/src/main/cpp/client/include/TopicPublishInfo.h b/src/main/cpp/client/include/TopicPublishInfo.h
index d4b18dd..ad7f179 100644
--- a/src/main/cpp/client/include/TopicPublishInfo.h
+++ b/src/main/cpp/client/include/TopicPublishInfo.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <vector>
diff --git a/src/main/cpp/client/include/TopicRouteChangeCallback.h b/src/main/cpp/client/include/TopicRouteChangeCallback.h
index 0a8829e..e8adac2 100644
--- a/src/main/cpp/client/include/TopicRouteChangeCallback.h
+++ b/src/main/cpp/client/include/TopicRouteChangeCallback.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "absl/strings/string_view.h"
diff --git a/src/main/cpp/client/include/TopicRouteData.h b/src/main/cpp/client/include/TopicRouteData.h
index 265f382..2d17d90 100644
--- a/src/main/cpp/client/include/TopicRouteData.h
+++ b/src/main/cpp/client/include/TopicRouteData.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <algorithm>
diff --git a/src/main/cpp/client/mocks/BUILD.bazel b/src/main/cpp/client/mocks/BUILD.bazel
index b7ac371..6da613f 100644
--- a/src/main/cpp/client/mocks/BUILD.bazel
+++ b/src/main/cpp/client/mocks/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 package(default_visibility = ["//visibility:public"])
 
diff --git a/src/main/cpp/client/mocks/RpcClientMock.cpp b/src/main/cpp/client/mocks/RpcClientMock.cpp
index 7d85dc9..a2ad7cf 100644
--- a/src/main/cpp/client/mocks/RpcClientMock.cpp
+++ b/src/main/cpp/client/mocks/RpcClientMock.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "RpcClientMock.h"
 
 using namespace testing;
diff --git a/src/main/cpp/client/mocks/include/ClientConfigMock.h b/src/main/cpp/client/mocks/include/ClientConfigMock.h
index 0e5315e..0183d5c 100644
--- a/src/main/cpp/client/mocks/include/ClientConfigMock.h
+++ b/src/main/cpp/client/mocks/include/ClientConfigMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "ClientConfig.h"
diff --git a/src/main/cpp/client/mocks/include/ClientManagerMock.h b/src/main/cpp/client/mocks/include/ClientManagerMock.h
index 03f827e..e7c88a8 100644
--- a/src/main/cpp/client/mocks/include/ClientManagerMock.h
+++ b/src/main/cpp/client/mocks/include/ClientManagerMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "ClientManager.h"
diff --git a/src/main/cpp/client/mocks/include/ClientMock.h b/src/main/cpp/client/mocks/include/ClientMock.h
index 1765992..9647f8a 100644
--- a/src/main/cpp/client/mocks/include/ClientMock.h
+++ b/src/main/cpp/client/mocks/include/ClientMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "Client.h"
diff --git a/src/main/cpp/client/mocks/include/ReceiveMessageCallbackMock.h b/src/main/cpp/client/mocks/include/ReceiveMessageCallbackMock.h
index 7680677..a7df00e 100644
--- a/src/main/cpp/client/mocks/include/ReceiveMessageCallbackMock.h
+++ b/src/main/cpp/client/mocks/include/ReceiveMessageCallbackMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "gmock/gmock.h"
diff --git a/src/main/cpp/client/mocks/include/RpcClientMock.h b/src/main/cpp/client/mocks/include/RpcClientMock.h
index dadafe0..1ef1e1b 100644
--- a/src/main/cpp/client/mocks/include/RpcClientMock.h
+++ b/src/main/cpp/client/mocks/include/RpcClientMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "InvocationContext.h"
diff --git a/src/main/cpp/concurrent/BUILD.bazel b/src/main/cpp/concurrent/BUILD.bazel
index 7e82dde..0501d20 100644
--- a/src/main/cpp/concurrent/BUILD.bazel
+++ b/src/main/cpp/concurrent/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 cc_library(
     name = "countdown_latch_library",
diff --git a/src/main/cpp/concurrent/CountdownLatch.cpp b/src/main/cpp/concurrent/CountdownLatch.cpp
index 6347bb1..8143cb2 100644
--- a/src/main/cpp/concurrent/CountdownLatch.cpp
+++ b/src/main/cpp/concurrent/CountdownLatch.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "CountdownLatch.h"
 #include "LoggerImpl.h"
 
diff --git a/src/main/cpp/concurrent/include/CountdownLatch.h b/src/main/cpp/concurrent/include/CountdownLatch.h
index 0996630..30263f0 100644
--- a/src/main/cpp/concurrent/include/CountdownLatch.h
+++ b/src/main/cpp/concurrent/include/CountdownLatch.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/log/BUILD.bazel b/src/main/cpp/log/BUILD.bazel
index 6a6208d..4b76706 100644
--- a/src/main/cpp/log/BUILD.bazel
+++ b/src/main/cpp/log/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 cc_library(
     name = "log_library",
diff --git a/src/main/cpp/log/LoggerImpl.cpp b/src/main/cpp/log/LoggerImpl.cpp
index a8140f4..a4241d3 100644
--- a/src/main/cpp/log/LoggerImpl.cpp
+++ b/src/main/cpp/log/LoggerImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "LoggerImpl.h"
 #include <algorithm>
 #include <cstdint>
diff --git a/src/main/cpp/log/include/LoggerImpl.h b/src/main/cpp/log/include/LoggerImpl.h
index 2aee66f..1c337d9 100644
--- a/src/main/cpp/log/include/LoggerImpl.h
+++ b/src/main/cpp/log/include/LoggerImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 #include "rocketmq/Logger.h"
 #include "spdlog/sinks/rotating_file_sink.h"
diff --git a/src/main/cpp/remoting/BUILD.bazel b/src/main/cpp/remoting/BUILD.bazel
index ae84d43..155672b 100644
--- a/src/main/cpp/remoting/BUILD.bazel
+++ b/src/main/cpp/remoting/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 package(default_visibility = ["//visibility:public"])
 
diff --git a/src/main/cpp/remoting/BrokerData.cpp b/src/main/cpp/remoting/BrokerData.cpp
index cadba72..5b7762f 100644
--- a/src/main/cpp/remoting/BrokerData.cpp
+++ b/src/main/cpp/remoting/BrokerData.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "BrokerData.h"
 #include <string>
 
diff --git a/src/main/cpp/remoting/QueryRouteRequestHeader.cpp b/src/main/cpp/remoting/QueryRouteRequestHeader.cpp
index 3a6f032..055d27c 100644
--- a/src/main/cpp/remoting/QueryRouteRequestHeader.cpp
+++ b/src/main/cpp/remoting/QueryRouteRequestHeader.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "QueryRouteRequestHeader.h"
 #include "rocketmq/RocketMQ.h"
 
diff --git a/src/main/cpp/remoting/QueueData.cpp b/src/main/cpp/remoting/QueueData.cpp
index 31a5702..6f22740 100644
--- a/src/main/cpp/remoting/QueueData.cpp
+++ b/src/main/cpp/remoting/QueueData.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "QueueData.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
diff --git a/src/main/cpp/remoting/RemotingCommand.cpp b/src/main/cpp/remoting/RemotingCommand.cpp
index cbcdf67..0019e55 100644
--- a/src/main/cpp/remoting/RemotingCommand.cpp
+++ b/src/main/cpp/remoting/RemotingCommand.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "RemotingCommand.h"
 
 #include <atomic>
diff --git a/src/main/cpp/remoting/TopicRouteData.cpp b/src/main/cpp/remoting/TopicRouteData.cpp
index 4414135..8b9750d 100644
--- a/src/main/cpp/remoting/TopicRouteData.cpp
+++ b/src/main/cpp/remoting/TopicRouteData.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TopicRouteData.h"
 #include "BrokerData.h"
 #include "rocketmq/RocketMQ.h"
diff --git a/src/main/cpp/remoting/include/BrokerData.h b/src/main/cpp/remoting/include/BrokerData.h
index d8d43d0..d522ae7 100644
--- a/src/main/cpp/remoting/include/BrokerData.h
+++ b/src/main/cpp/remoting/include/BrokerData.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/remoting/include/CommandCustomHeader.h b/src/main/cpp/remoting/include/CommandCustomHeader.h
index aeabf06..441bcd9 100644
--- a/src/main/cpp/remoting/include/CommandCustomHeader.h
+++ b/src/main/cpp/remoting/include/CommandCustomHeader.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "google/protobuf/struct.pb.h"
diff --git a/src/main/cpp/remoting/include/LanguageCode.h b/src/main/cpp/remoting/include/LanguageCode.h
index cdf8efe..9204a4d 100644
--- a/src/main/cpp/remoting/include/LanguageCode.h
+++ b/src/main/cpp/remoting/include/LanguageCode.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/remoting/include/QueryRouteRequestHeader.h b/src/main/cpp/remoting/include/QueryRouteRequestHeader.h
index 86fc891..0a9682a 100644
--- a/src/main/cpp/remoting/include/QueryRouteRequestHeader.h
+++ b/src/main/cpp/remoting/include/QueryRouteRequestHeader.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/remoting/include/QueueData.h b/src/main/cpp/remoting/include/QueueData.h
index 6fb5c7f..4be93be 100644
--- a/src/main/cpp/remoting/include/QueueData.h
+++ b/src/main/cpp/remoting/include/QueueData.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/remoting/include/RemotingCommand.h b/src/main/cpp/remoting/include/RemotingCommand.h
index b7e4cec..c4b5ef1 100644
--- a/src/main/cpp/remoting/include/RemotingCommand.h
+++ b/src/main/cpp/remoting/include/RemotingCommand.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/remoting/include/RemotingCommandType.h b/src/main/cpp/remoting/include/RemotingCommandType.h
index 5bd341a..6e7c4fe 100644
--- a/src/main/cpp/remoting/include/RemotingCommandType.h
+++ b/src/main/cpp/remoting/include/RemotingCommandType.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/remoting/include/RequestCode.h b/src/main/cpp/remoting/include/RequestCode.h
index d0a933d..58de924 100644
--- a/src/main/cpp/remoting/include/RequestCode.h
+++ b/src/main/cpp/remoting/include/RequestCode.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/remoting/include/ResponseCode.h b/src/main/cpp/remoting/include/ResponseCode.h
index 080f9b3..c47014f 100644
--- a/src/main/cpp/remoting/include/ResponseCode.h
+++ b/src/main/cpp/remoting/include/ResponseCode.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/remoting/include/TopicRouteData.h b/src/main/cpp/remoting/include/TopicRouteData.h
index 9e45e3a..16cf7c8 100644
--- a/src/main/cpp/remoting/include/TopicRouteData.h
+++ b/src/main/cpp/remoting/include/TopicRouteData.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <vector>
diff --git a/src/main/cpp/remoting/include/Version.h b/src/main/cpp/remoting/include/Version.h
index 5a64a45..8decd13 100644
--- a/src/main/cpp/remoting/include/Version.h
+++ b/src/main/cpp/remoting/include/Version.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/rocketmq/AsyncReceiveMessageCallback.cpp b/src/main/cpp/rocketmq/AsyncReceiveMessageCallback.cpp
index d4ac095..95df783 100644
--- a/src/main/cpp/rocketmq/AsyncReceiveMessageCallback.cpp
+++ b/src/main/cpp/rocketmq/AsyncReceiveMessageCallback.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "AsyncReceiveMessageCallback.h"
 
 #include <system_error>
diff --git a/src/main/cpp/rocketmq/AwaitPullCallback.cpp b/src/main/cpp/rocketmq/AwaitPullCallback.cpp
index 6c942a8..db315f0 100644
--- a/src/main/cpp/rocketmq/AwaitPullCallback.cpp
+++ b/src/main/cpp/rocketmq/AwaitPullCallback.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "AwaitPullCallback.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
diff --git a/src/main/cpp/rocketmq/BUILD.bazel b/src/main/cpp/rocketmq/BUILD.bazel
index 498fa39..20cfe8c 100644
--- a/src/main/cpp/rocketmq/BUILD.bazel
+++ b/src/main/cpp/rocketmq/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 
 package(default_visibility = ["//visibility:public"])
diff --git a/src/main/cpp/rocketmq/ClientImpl.cpp b/src/main/cpp/rocketmq/ClientImpl.cpp
index 920187c..0b48a05 100644
--- a/src/main/cpp/rocketmq/ClientImpl.cpp
+++ b/src/main/cpp/rocketmq/ClientImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <algorithm>
 #include <atomic>
 #include <chrono>
diff --git a/src/main/cpp/rocketmq/ConsumeFifoMessageService.cpp b/src/main/cpp/rocketmq/ConsumeFifoMessageService.cpp
index 435d8c4..3fd79fb 100644
--- a/src/main/cpp/rocketmq/ConsumeFifoMessageService.cpp
+++ b/src/main/cpp/rocketmq/ConsumeFifoMessageService.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <chrono>
 #include <functional>
 #include <limits>
diff --git a/src/main/cpp/rocketmq/ConsumeMessageServiceBase.cpp b/src/main/cpp/rocketmq/ConsumeMessageServiceBase.cpp
index 468915d..993ffaf 100644
--- a/src/main/cpp/rocketmq/ConsumeMessageServiceBase.cpp
+++ b/src/main/cpp/rocketmq/ConsumeMessageServiceBase.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ConsumeMessageServiceBase.h"
 #include "LoggerImpl.h"
 #include "PushConsumer.h"
diff --git a/src/main/cpp/rocketmq/ConsumeStandardMessageService.cpp b/src/main/cpp/rocketmq/ConsumeStandardMessageService.cpp
index 2ba3082..d9b4c02 100644
--- a/src/main/cpp/rocketmq/ConsumeStandardMessageService.cpp
+++ b/src/main/cpp/rocketmq/ConsumeStandardMessageService.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <limits>
 #include <string>
 #include <system_error>
diff --git a/src/main/cpp/rocketmq/CredentialsProvider.cpp b/src/main/cpp/rocketmq/CredentialsProvider.cpp
index 0200750..41ae320 100644
--- a/src/main/cpp/rocketmq/CredentialsProvider.cpp
+++ b/src/main/cpp/rocketmq/CredentialsProvider.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <cstdlib>
 #include <fstream>
 #include <iostream>
diff --git a/src/main/cpp/rocketmq/DefaultMQProducer.cpp b/src/main/cpp/rocketmq/DefaultMQProducer.cpp
index bbf6ad8..ba3581d 100644
--- a/src/main/cpp/rocketmq/DefaultMQProducer.cpp
+++ b/src/main/cpp/rocketmq/DefaultMQProducer.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/DefaultMQProducer.h"
 
 #include <chrono>
diff --git a/src/main/cpp/rocketmq/DefaultMQPullConsumer.cpp b/src/main/cpp/rocketmq/DefaultMQPullConsumer.cpp
index 8f63625..f777d77 100644
--- a/src/main/cpp/rocketmq/DefaultMQPullConsumer.cpp
+++ b/src/main/cpp/rocketmq/DefaultMQPullConsumer.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/DefaultMQPullConsumer.h"
 
 #include <memory>
diff --git a/src/main/cpp/rocketmq/DefaultMQPushConsumer.cpp b/src/main/cpp/rocketmq/DefaultMQPushConsumer.cpp
index 6cb6291..8983689 100644
--- a/src/main/cpp/rocketmq/DefaultMQPushConsumer.cpp
+++ b/src/main/cpp/rocketmq/DefaultMQPushConsumer.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <chrono>
 #include <memory>
 
diff --git a/src/main/cpp/rocketmq/DynamicNameServerResolver.cpp b/src/main/cpp/rocketmq/DynamicNameServerResolver.cpp
index 0d591c3..428f6f8 100644
--- a/src/main/cpp/rocketmq/DynamicNameServerResolver.cpp
+++ b/src/main/cpp/rocketmq/DynamicNameServerResolver.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "DynamicNameServerResolver.h"
 
 #include <atomic>
diff --git a/src/main/cpp/rocketmq/FilterExpression.cpp b/src/main/cpp/rocketmq/FilterExpression.cpp
index de1f95a..133eb98 100644
--- a/src/main/cpp/rocketmq/FilterExpression.cpp
+++ b/src/main/cpp/rocketmq/FilterExpression.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "FilterExpression.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
diff --git a/src/main/cpp/rocketmq/MessageGroupQueueSelector.cpp b/src/main/cpp/rocketmq/MessageGroupQueueSelector.cpp
index 8b97e31..344301d 100644
--- a/src/main/cpp/rocketmq/MessageGroupQueueSelector.cpp
+++ b/src/main/cpp/rocketmq/MessageGroupQueueSelector.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "MessageGroupQueueSelector.h"
 
 #include <cassert>
diff --git a/src/main/cpp/rocketmq/ProcessQueueImpl.cpp b/src/main/cpp/rocketmq/ProcessQueueImpl.cpp
index e9c1db0..591bd56 100644
--- a/src/main/cpp/rocketmq/ProcessQueueImpl.cpp
+++ b/src/main/cpp/rocketmq/ProcessQueueImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ProcessQueueImpl.h"
 
 #include <atomic>
diff --git a/src/main/cpp/rocketmq/ProducerImpl.cpp b/src/main/cpp/rocketmq/ProducerImpl.cpp
index f37ab57..0d12249 100644
--- a/src/main/cpp/rocketmq/ProducerImpl.cpp
+++ b/src/main/cpp/rocketmq/ProducerImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ProducerImpl.h"
 
 #include <atomic>
diff --git a/src/main/cpp/rocketmq/PullConsumerImpl.cpp b/src/main/cpp/rocketmq/PullConsumerImpl.cpp
index 43f8203..48d4a7b 100644
--- a/src/main/cpp/rocketmq/PullConsumerImpl.cpp
+++ b/src/main/cpp/rocketmq/PullConsumerImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "PullConsumerImpl.h"
 #include "ClientManagerFactory.h"
 #include "InvocationContext.h"
diff --git a/src/main/cpp/rocketmq/PushConsumerImpl.cpp b/src/main/cpp/rocketmq/PushConsumerImpl.cpp
index a8cbc7b..43f53e2 100644
--- a/src/main/cpp/rocketmq/PushConsumerImpl.cpp
+++ b/src/main/cpp/rocketmq/PushConsumerImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "PushConsumerImpl.h"
 
 #include <atomic>
diff --git a/src/main/cpp/rocketmq/SendCallbacks.cpp b/src/main/cpp/rocketmq/SendCallbacks.cpp
index ae680e3..596ad01 100644
--- a/src/main/cpp/rocketmq/SendCallbacks.cpp
+++ b/src/main/cpp/rocketmq/SendCallbacks.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "SendCallbacks.h"
 
 #include "ProducerImpl.h"
diff --git a/src/main/cpp/rocketmq/StaticNameServerResolver.cpp b/src/main/cpp/rocketmq/StaticNameServerResolver.cpp
index 095fd57..6482c3e 100644
--- a/src/main/cpp/rocketmq/StaticNameServerResolver.cpp
+++ b/src/main/cpp/rocketmq/StaticNameServerResolver.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "StaticNameServerResolver.h"
 
 #include "absl/strings/str_split.h"
diff --git a/src/main/cpp/rocketmq/TransactionImpl.cpp b/src/main/cpp/rocketmq/TransactionImpl.cpp
index 75c0c5f..52cc6d6 100644
--- a/src/main/cpp/rocketmq/TransactionImpl.cpp
+++ b/src/main/cpp/rocketmq/TransactionImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TransactionImpl.h"
 #include "ProducerImpl.h"
 #include <string>
diff --git a/src/main/cpp/rocketmq/include/AsyncReceiveMessageCallback.h b/src/main/cpp/rocketmq/include/AsyncReceiveMessageCallback.h
index 006ba11..59fd115 100644
--- a/src/main/cpp/rocketmq/include/AsyncReceiveMessageCallback.h
+++ b/src/main/cpp/rocketmq/include/AsyncReceiveMessageCallback.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <functional>
diff --git a/src/main/cpp/rocketmq/include/AwaitPullCallback.h b/src/main/cpp/rocketmq/include/AwaitPullCallback.h
index d7596f0..6d79c9a 100644
--- a/src/main/cpp/rocketmq/include/AwaitPullCallback.h
+++ b/src/main/cpp/rocketmq/include/AwaitPullCallback.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <system_error>
diff --git a/src/main/cpp/rocketmq/include/ClientImpl.h b/src/main/cpp/rocketmq/include/ClientImpl.h
index 679f7b3..f78c922 100644
--- a/src/main/cpp/rocketmq/include/ClientImpl.h
+++ b/src/main/cpp/rocketmq/include/ClientImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <atomic>
diff --git a/src/main/cpp/rocketmq/include/ClientResourceBundle.h b/src/main/cpp/rocketmq/include/ClientResourceBundle.h
index ac062ca..9788496 100644
--- a/src/main/cpp/rocketmq/include/ClientResourceBundle.h
+++ b/src/main/cpp/rocketmq/include/ClientResourceBundle.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/RocketMQ.h"
 
 #include <string>
diff --git a/src/main/cpp/rocketmq/include/ConsumeFifoMessageService.h b/src/main/cpp/rocketmq/include/ConsumeFifoMessageService.h
index 3ac6b12..3423ebf 100644
--- a/src/main/cpp/rocketmq/include/ConsumeFifoMessageService.h
+++ b/src/main/cpp/rocketmq/include/ConsumeFifoMessageService.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ConsumeMessageServiceBase.h"
 
 ROCKETMQ_NAMESPACE_BEGIN
diff --git a/src/main/cpp/rocketmq/include/ConsumeMessageService.h b/src/main/cpp/rocketmq/include/ConsumeMessageService.h
index acf6cfa..abedc0f 100644
--- a/src/main/cpp/rocketmq/include/ConsumeMessageService.h
+++ b/src/main/cpp/rocketmq/include/ConsumeMessageService.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <cstdint>
diff --git a/src/main/cpp/rocketmq/include/ConsumeMessageServiceBase.h b/src/main/cpp/rocketmq/include/ConsumeMessageServiceBase.h
index 3b883d6..821d887 100644
--- a/src/main/cpp/rocketmq/include/ConsumeMessageServiceBase.h
+++ b/src/main/cpp/rocketmq/include/ConsumeMessageServiceBase.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <memory>
diff --git a/src/main/cpp/rocketmq/include/ConsumeStandardMessageService.h b/src/main/cpp/rocketmq/include/ConsumeStandardMessageService.h
index d7517ed..d6b5bfa 100644
--- a/src/main/cpp/rocketmq/include/ConsumeStandardMessageService.h
+++ b/src/main/cpp/rocketmq/include/ConsumeStandardMessageService.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "ConsumeMessageServiceBase.h"
diff --git a/src/main/cpp/rocketmq/include/Consumer.h b/src/main/cpp/rocketmq/include/Consumer.h
index ee73e51..6b31063 100644
--- a/src/main/cpp/rocketmq/include/Consumer.h
+++ b/src/main/cpp/rocketmq/include/Consumer.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "absl/container/flat_hash_map.h"
diff --git a/src/main/cpp/rocketmq/include/DynamicNameServerResolver.h b/src/main/cpp/rocketmq/include/DynamicNameServerResolver.h
index 7626bd1..b52142c 100644
--- a/src/main/cpp/rocketmq/include/DynamicNameServerResolver.h
+++ b/src/main/cpp/rocketmq/include/DynamicNameServerResolver.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <atomic>
diff --git a/src/main/cpp/rocketmq/include/FilterExpression.h b/src/main/cpp/rocketmq/include/FilterExpression.h
index 7be3b9c..77ca68c 100644
--- a/src/main/cpp/rocketmq/include/FilterExpression.h
+++ b/src/main/cpp/rocketmq/include/FilterExpression.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/rocketmq/include/MessageGroupQueueSelector.h b/src/main/cpp/rocketmq/include/MessageGroupQueueSelector.h
index 1553cc9..056b1a3 100644
--- a/src/main/cpp/rocketmq/include/MessageGroupQueueSelector.h
+++ b/src/main/cpp/rocketmq/include/MessageGroupQueueSelector.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "rocketmq/MQSelector.h"
diff --git a/src/main/cpp/rocketmq/include/NameServerResolver.h b/src/main/cpp/rocketmq/include/NameServerResolver.h
index 829d2d2..52bb345 100644
--- a/src/main/cpp/rocketmq/include/NameServerResolver.h
+++ b/src/main/cpp/rocketmq/include/NameServerResolver.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <string>
diff --git a/src/main/cpp/rocketmq/include/ProcessQueue.h b/src/main/cpp/rocketmq/include/ProcessQueue.h
index a73b67e..dda6df6 100644
--- a/src/main/cpp/rocketmq/include/ProcessQueue.h
+++ b/src/main/cpp/rocketmq/include/ProcessQueue.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <memory>
diff --git a/src/main/cpp/rocketmq/include/ProcessQueueImpl.h b/src/main/cpp/rocketmq/include/ProcessQueueImpl.h
index 018f9be..598dcbb 100644
--- a/src/main/cpp/rocketmq/include/ProcessQueueImpl.h
+++ b/src/main/cpp/rocketmq/include/ProcessQueueImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <apache/rocketmq/v1/definition.pb.h>
diff --git a/src/main/cpp/rocketmq/include/ProducerImpl.h b/src/main/cpp/rocketmq/include/ProducerImpl.h
index dea27a2..f4d8525 100644
--- a/src/main/cpp/rocketmq/include/ProducerImpl.h
+++ b/src/main/cpp/rocketmq/include/ProducerImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/src/main/cpp/rocketmq/include/PullConsumerImpl.h b/src/main/cpp/rocketmq/include/PullConsumerImpl.h
index c009113..6be2798 100644
--- a/src/main/cpp/rocketmq/include/PullConsumerImpl.h
+++ b/src/main/cpp/rocketmq/include/PullConsumerImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <future>
diff --git a/src/main/cpp/rocketmq/include/PushConsumer.h b/src/main/cpp/rocketmq/include/PushConsumer.h
index dd78cec..e009235 100644
--- a/src/main/cpp/rocketmq/include/PushConsumer.h
+++ b/src/main/cpp/rocketmq/include/PushConsumer.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <functional>
diff --git a/src/main/cpp/rocketmq/include/PushConsumerImpl.h b/src/main/cpp/rocketmq/include/PushConsumerImpl.h
index e695810..cbe95aa 100644
--- a/src/main/cpp/rocketmq/include/PushConsumerImpl.h
+++ b/src/main/cpp/rocketmq/include/PushConsumerImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <memory>
diff --git a/src/main/cpp/rocketmq/include/SendCallbacks.h b/src/main/cpp/rocketmq/include/SendCallbacks.h
index beff499..1681755 100644
--- a/src/main/cpp/rocketmq/include/SendCallbacks.h
+++ b/src/main/cpp/rocketmq/include/SendCallbacks.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <memory>
diff --git a/src/main/cpp/rocketmq/include/StaticNameServerResolver.h b/src/main/cpp/rocketmq/include/StaticNameServerResolver.h
index ab955d2..fed37bc 100644
--- a/src/main/cpp/rocketmq/include/StaticNameServerResolver.h
+++ b/src/main/cpp/rocketmq/include/StaticNameServerResolver.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <atomic>
diff --git a/src/main/cpp/rocketmq/include/StsCredentialsProviderImpl.h b/src/main/cpp/rocketmq/include/StsCredentialsProviderImpl.h
index 54c24a1..dc4c2a3 100644
--- a/src/main/cpp/rocketmq/include/StsCredentialsProviderImpl.h
+++ b/src/main/cpp/rocketmq/include/StsCredentialsProviderImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "absl/base/thread_annotations.h"
diff --git a/src/main/cpp/rocketmq/include/TransactionImpl.h b/src/main/cpp/rocketmq/include/TransactionImpl.h
index 8029605..37e50dd 100644
--- a/src/main/cpp/rocketmq/include/TransactionImpl.h
+++ b/src/main/cpp/rocketmq/include/TransactionImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <memory>
diff --git a/src/main/cpp/rocketmq/mocks/BUILD.bazel b/src/main/cpp/rocketmq/mocks/BUILD.bazel
index 541cb9b..21262fa 100644
--- a/src/main/cpp/rocketmq/mocks/BUILD.bazel
+++ b/src/main/cpp/rocketmq/mocks/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 package(default_visibility = ["//visibility:public"])
 
diff --git a/src/main/cpp/rocketmq/mocks/include/ConsumeMessageServiceMock.h b/src/main/cpp/rocketmq/mocks/include/ConsumeMessageServiceMock.h
index c2645f3..1a1810b 100644
--- a/src/main/cpp/rocketmq/mocks/include/ConsumeMessageServiceMock.h
+++ b/src/main/cpp/rocketmq/mocks/include/ConsumeMessageServiceMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "ConsumeMessageService.h"
diff --git a/src/main/cpp/rocketmq/mocks/include/ConsumerMock.h b/src/main/cpp/rocketmq/mocks/include/ConsumerMock.h
index c818458..bbd6c32 100644
--- a/src/main/cpp/rocketmq/mocks/include/ConsumerMock.h
+++ b/src/main/cpp/rocketmq/mocks/include/ConsumerMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "ClientMock.h"
diff --git a/src/main/cpp/rocketmq/mocks/include/NameServerResolverMock.h b/src/main/cpp/rocketmq/mocks/include/NameServerResolverMock.h
index 89d7c7c..005d5e3 100644
--- a/src/main/cpp/rocketmq/mocks/include/NameServerResolverMock.h
+++ b/src/main/cpp/rocketmq/mocks/include/NameServerResolverMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include "NameServerResolver.h"
diff --git a/src/main/cpp/rocketmq/mocks/include/ProcessQueueMock.h b/src/main/cpp/rocketmq/mocks/include/ProcessQueueMock.h
index b56b2a9..56216bc 100644
--- a/src/main/cpp/rocketmq/mocks/include/ProcessQueueMock.h
+++ b/src/main/cpp/rocketmq/mocks/include/ProcessQueueMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ProcessQueue.h"
 #include "gmock/gmock.h"
 
diff --git a/src/main/cpp/rocketmq/mocks/include/PushConsumerMock.h b/src/main/cpp/rocketmq/mocks/include/PushConsumerMock.h
index 00cd872..69c517c 100644
--- a/src/main/cpp/rocketmq/mocks/include/PushConsumerMock.h
+++ b/src/main/cpp/rocketmq/mocks/include/PushConsumerMock.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <system_error>
diff --git a/src/main/cpp/scheduler/BUILD.bazel b/src/main/cpp/scheduler/BUILD.bazel
index f0b9158..9997c63 100644
--- a/src/main/cpp/scheduler/BUILD.bazel
+++ b/src/main/cpp/scheduler/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 cc_library(
     name = "scheduler_library",
diff --git a/src/main/cpp/scheduler/SchedulerImpl.cpp b/src/main/cpp/scheduler/SchedulerImpl.cpp
index d926228..723cfca 100644
--- a/src/main/cpp/scheduler/SchedulerImpl.cpp
+++ b/src/main/cpp/scheduler/SchedulerImpl.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "SchedulerImpl.h"
 
 #include <atomic>
diff --git a/src/main/cpp/scheduler/include/Scheduler.h b/src/main/cpp/scheduler/include/Scheduler.h
index ab1a8f2..7f86c49 100644
--- a/src/main/cpp/scheduler/include/Scheduler.h
+++ b/src/main/cpp/scheduler/include/Scheduler.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <chrono>
diff --git a/src/main/cpp/scheduler/include/SchedulerImpl.h b/src/main/cpp/scheduler/include/SchedulerImpl.h
index fdbe98f..01c1265 100644
--- a/src/main/cpp/scheduler/include/SchedulerImpl.h
+++ b/src/main/cpp/scheduler/include/SchedulerImpl.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 #include <atomic>
 #include <chrono>
diff --git a/src/main/cpp/tracing/exporters/BUILD.bazel b/src/main/cpp/tracing/exporters/BUILD.bazel
index a6687f4..0fee745 100644
--- a/src/main/cpp/tracing/exporters/BUILD.bazel
+++ b/src/main/cpp/tracing/exporters/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_library")
 cc_library(
     name = "otlp_exporter",
diff --git a/src/main/cpp/tracing/exporters/OtlpExporter.cpp b/src/main/cpp/tracing/exporters/OtlpExporter.cpp
index 40f93d2..2ea70aa 100644
--- a/src/main/cpp/tracing/exporters/OtlpExporter.cpp
+++ b/src/main/cpp/tracing/exporters/OtlpExporter.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "OtlpExporter.h"
 #include "InvocationContext.h"
 #include "MixAll.h"
diff --git a/src/main/cpp/tracing/exporters/include/OtlpExporter.h b/src/main/cpp/tracing/exporters/include/OtlpExporter.h
index 6a39f96..5b40f7f 100644
--- a/src/main/cpp/tracing/exporters/include/OtlpExporter.h
+++ b/src/main/cpp/tracing/exporters/include/OtlpExporter.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <algorithm>
diff --git a/src/test/cpp/benchmark/BUILD.bazel b/src/test/cpp/benchmark/BUILD.bazel
index e8aa27a..c0cabf8 100644
--- a/src/test/cpp/benchmark/BUILD.bazel
+++ b/src/test/cpp/benchmark/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test", "cc_binary")
 
 cc_test(
diff --git a/src/test/cpp/benchmark/BenchmarkTest.cpp b/src/test/cpp/benchmark/BenchmarkTest.cpp
index 388a5ef..fe4e15d 100644
--- a/src/test/cpp/benchmark/BenchmarkTest.cpp
+++ b/src/test/cpp/benchmark/BenchmarkTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "benchmark/benchmark.h"
 
 static void BM_StringCreation(benchmark::State& state) {
diff --git a/src/test/cpp/it/BUILD.bazel b/src/test/cpp/it/BUILD.bazel
index c2e9190..b4cabee 100644
--- a/src/test/cpp/it/BUILD.bazel
+++ b/src/test/cpp/it/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 cc_test(
     name = "it_top_addressing",
diff --git a/src/test/cpp/it/RpcClientTest.cpp b/src/test/cpp/it/RpcClientTest.cpp
index 8b61c24..051f50d 100644
--- a/src/test/cpp/it/RpcClientTest.cpp
+++ b/src/test/cpp/it/RpcClientTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <iostream>
 #include <thread>
 #include <unordered_map>
diff --git a/src/test/cpp/it/TopAddressingTest.cpp b/src/test/cpp/it/TopAddressingTest.cpp
index ed8731a..85d3954 100644
--- a/src/test/cpp/it/TopAddressingTest.cpp
+++ b/src/test/cpp/it/TopAddressingTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <atomic>
 #include <chrono>
 #include <cstdlib>
diff --git a/src/test/cpp/it/TopicPublishInfoTest.cpp b/src/test/cpp/it/TopicPublishInfoTest.cpp
index c7a2d60..1f49725 100644
--- a/src/test/cpp/it/TopicPublishInfoTest.cpp
+++ b/src/test/cpp/it/TopicPublishInfoTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TopicPublishInfo.h"
 #include "ClientConfigImpl.h"
 #include "LogInterceptorFactory.h"
diff --git a/src/test/cpp/ut/BUILD.bazel b/src/test/cpp/ut/BUILD.bazel
new file mode 100644
index 0000000..2695ae2
--- /dev/null
+++ b/src/test/cpp/ut/BUILD.bazel
@@ -0,0 +1,17 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+load("@rules_cc//cc:defs.bzl", "cc_test", "cc_binary")
\ No newline at end of file
diff --git a/src/test/cpp/ut/admin/AdminServerTest.cpp b/src/test/cpp/ut/admin/AdminServerTest.cpp
index 684447b..8cd0050 100644
--- a/src/test/cpp/ut/admin/AdminServerTest.cpp
+++ b/src/test/cpp/ut/admin/AdminServerTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <gtest/gtest.h>
 
 #include "AdminServerImpl.h"
diff --git a/src/test/cpp/ut/admin/BUILD.bazel b/src/test/cpp/ut/admin/BUILD.bazel
index 8a2cc7f..8fe13fc 100644
--- a/src/test/cpp/ut/admin/BUILD.bazel
+++ b/src/test/cpp/ut/admin/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 
 cc_test(
diff --git a/src/test/cpp/ut/api/BUILD.bazel b/src/test/cpp/ut/api/BUILD.bazel
index eda5f4b..78f575f 100644
--- a/src/test/cpp/ut/api/BUILD.bazel
+++ b/src/test/cpp/ut/api/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 
 cc_test(
diff --git a/src/test/cpp/ut/api/ErrorCodeTest.cpp b/src/test/cpp/ut/api/ErrorCodeTest.cpp
index 42b525f..68badd2 100644
--- a/src/test/cpp/ut/api/ErrorCodeTest.cpp
+++ b/src/test/cpp/ut/api/ErrorCodeTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/ErrorCode.h"
 #include "gtest/gtest.h"
 #include <system_error>
diff --git a/src/test/cpp/ut/base/BUILD.bazel b/src/test/cpp/ut/base/BUILD.bazel
index 3e60c18..092ef78 100644
--- a/src/test/cpp/ut/base/BUILD.bazel
+++ b/src/test/cpp/ut/base/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 cc_test(
     name = "histogram_test",
diff --git a/src/test/cpp/ut/base/HistogramTest.cpp b/src/test/cpp/ut/base/HistogramTest.cpp
index 279c74b..613e0a2 100644
--- a/src/test/cpp/ut/base/HistogramTest.cpp
+++ b/src/test/cpp/ut/base/HistogramTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "Histogram.h"
 #include <gtest/gtest.h>
 
diff --git a/src/test/cpp/ut/base/HostInfoTest.cpp b/src/test/cpp/ut/base/HostInfoTest.cpp
index fd1b8ab..d106061 100644
--- a/src/test/cpp/ut/base/HostInfoTest.cpp
+++ b/src/test/cpp/ut/base/HostInfoTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "HostInfo.h"
 #include "fmt/format.h"
 #include "rocketmq/RocketMQ.h"
diff --git a/src/test/cpp/ut/base/HttpClientTest.cpp b/src/test/cpp/ut/base/HttpClientTest.cpp
index ce1290e..9a5df56 100644
--- a/src/test/cpp/ut/base/HttpClientTest.cpp
+++ b/src/test/cpp/ut/base/HttpClientTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <chrono>
 #include <iostream>
 #include <string>
diff --git a/src/test/cpp/ut/base/InvocationContextTest.cpp b/src/test/cpp/ut/base/InvocationContextTest.cpp
index 9f94e1e..25efffd 100644
--- a/src/test/cpp/ut/base/InvocationContextTest.cpp
+++ b/src/test/cpp/ut/base/InvocationContextTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "InvocationContext.h"
 #include "RpcClient.h"
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/base/MQMessageExtTest.cpp b/src/test/cpp/ut/base/MQMessageExtTest.cpp
index aa2d8b1..32575a0 100644
--- a/src/test/cpp/ut/base/MQMessageExtTest.cpp
+++ b/src/test/cpp/ut/base/MQMessageExtTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/MQMessageExt.h"
 #include "MessageAccessor.h"
 #include "rocketmq/MQMessage.h"
diff --git a/src/test/cpp/ut/base/MQMessageTest.cpp b/src/test/cpp/ut/base/MQMessageTest.cpp
index 1c76a87..4b018d6 100644
--- a/src/test/cpp/ut/base/MQMessageTest.cpp
+++ b/src/test/cpp/ut/base/MQMessageTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/MQMessage.h"
 #include "gtest/gtest.h"
 #include <cstring>
diff --git a/src/test/cpp/ut/base/MixAllTest.cpp b/src/test/cpp/ut/base/MixAllTest.cpp
index ee8b281..b61f670 100644
--- a/src/test/cpp/ut/base/MixAllTest.cpp
+++ b/src/test/cpp/ut/base/MixAllTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "MixAll.h"
 #include "rocketmq/MQMessage.h"
 #include "rocketmq/RocketMQ.h"
diff --git a/src/test/cpp/ut/base/RateLimiterTest.cpp b/src/test/cpp/ut/base/RateLimiterTest.cpp
index bc504b2..97726a5 100644
--- a/src/test/cpp/ut/base/RateLimiterTest.cpp
+++ b/src/test/cpp/ut/base/RateLimiterTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "RateLimiter.h"
 #include "rocketmq/RocketMQ.h"
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/base/ThreadPoolTest.cpp b/src/test/cpp/ut/base/ThreadPoolTest.cpp
index 64d9f5e..9be1ed7 100644
--- a/src/test/cpp/ut/base/ThreadPoolTest.cpp
+++ b/src/test/cpp/ut/base/ThreadPoolTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ThreadPoolImpl.h"
 #include "absl/memory/memory.h"
 #include "absl/synchronization/mutex.h"
diff --git a/src/test/cpp/ut/base/TopAddressingTest.cpp b/src/test/cpp/ut/base/TopAddressingTest.cpp
index 1e4d869..a2a5652 100644
--- a/src/test/cpp/ut/base/TopAddressingTest.cpp
+++ b/src/test/cpp/ut/base/TopAddressingTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <memory>
 #include <string>
 #include <utility>
diff --git a/src/test/cpp/ut/base/UniqueIdGeneratorTest.cpp b/src/test/cpp/ut/base/UniqueIdGeneratorTest.cpp
index 58dee24..dbafdea 100644
--- a/src/test/cpp/ut/base/UniqueIdGeneratorTest.cpp
+++ b/src/test/cpp/ut/base/UniqueIdGeneratorTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "UniqueIdGenerator.h"
 #include "absl/container/flat_hash_set.h"
 #include "rocketmq/RocketMQ.h"
diff --git a/src/test/cpp/ut/base/UtilAllTest.cpp b/src/test/cpp/ut/base/UtilAllTest.cpp
index 5c73544..a142dde 100644
--- a/src/test/cpp/ut/base/UtilAllTest.cpp
+++ b/src/test/cpp/ut/base/UtilAllTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "UtilAll.h"
 #include "MixAll.h"
 #include "absl/strings/str_split.h"
diff --git a/src/test/cpp/ut/client/BUILD.bazel b/src/test/cpp/ut/client/BUILD.bazel
index 4d8eeb9..b0757cb 100644
--- a/src/test/cpp/ut/client/BUILD.bazel
+++ b/src/test/cpp/ut/client/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 cc_test(
     name = "tls_helper_test",
diff --git a/src/test/cpp/ut/client/ClientManagerFactoryTest.cpp b/src/test/cpp/ut/client/ClientManagerFactoryTest.cpp
index 5e93636..7c182ed 100644
--- a/src/test/cpp/ut/client/ClientManagerFactoryTest.cpp
+++ b/src/test/cpp/ut/client/ClientManagerFactoryTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ClientManagerFactory.h"
 #include "ClientConfigMock.h"
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/client/ClientManagerTest.cpp b/src/test/cpp/ut/client/ClientManagerTest.cpp
index f1c1e2a..4dc8c5d 100644
--- a/src/test/cpp/ut/client/ClientManagerTest.cpp
+++ b/src/test/cpp/ut/client/ClientManagerTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ClientManagerImpl.h"
 #include "ReceiveMessageCallbackMock.h"
 #include "RpcClientMock.h"
diff --git a/src/test/cpp/ut/client/ClientTest.cpp b/src/test/cpp/ut/client/ClientTest.cpp
index 098789f..d67bec2 100644
--- a/src/test/cpp/ut/client/ClientTest.cpp
+++ b/src/test/cpp/ut/client/ClientTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ClientMock.h"
 #include "rocketmq/RocketMQ.h"
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/client/RpcClientTest.cpp b/src/test/cpp/ut/client/RpcClientTest.cpp
index b4d841d..77d9a8c 100644
--- a/src/test/cpp/ut/client/RpcClientTest.cpp
+++ b/src/test/cpp/ut/client/RpcClientTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "RpcClientMock.h"
 
 #include "google/rpc/code.pb.h"
diff --git a/src/test/cpp/ut/client/TlsHelperTest.cpp b/src/test/cpp/ut/client/TlsHelperTest.cpp
index 845f841..ea834ee 100644
--- a/src/test/cpp/ut/client/TlsHelperTest.cpp
+++ b/src/test/cpp/ut/client/TlsHelperTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TlsHelper.h"
 #include <gtest/gtest.h>
 #include <string>
diff --git a/src/test/cpp/ut/client/TopicAssignmentInfoTest.cpp b/src/test/cpp/ut/client/TopicAssignmentInfoTest.cpp
index 521ea64..ee8ea7e 100644
--- a/src/test/cpp/ut/client/TopicAssignmentInfoTest.cpp
+++ b/src/test/cpp/ut/client/TopicAssignmentInfoTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TopicAssignmentInfo.h"
 #include "rocketmq/ConsumeType.h"
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/client/TracingUtilityTest.cpp b/src/test/cpp/ut/client/TracingUtilityTest.cpp
index de46b79..b47bb0c 100644
--- a/src/test/cpp/ut/client/TracingUtilityTest.cpp
+++ b/src/test/cpp/ut/client/TracingUtilityTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TracingUtility.h"
 #include "gtest/gtest.h"
 #include <iostream>
diff --git a/src/test/cpp/ut/concurrent/BUILD.bazel b/src/test/cpp/ut/concurrent/BUILD.bazel
index 993fe1f..00e4ad8 100644
--- a/src/test/cpp/ut/concurrent/BUILD.bazel
+++ b/src/test/cpp/ut/concurrent/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 cc_test(
     name = "countdown_latch_test",
diff --git a/src/test/cpp/ut/concurrent/CountdownLatchTest.cpp b/src/test/cpp/ut/concurrent/CountdownLatchTest.cpp
index 4b9d47e..6545b0a 100644
--- a/src/test/cpp/ut/concurrent/CountdownLatchTest.cpp
+++ b/src/test/cpp/ut/concurrent/CountdownLatchTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "CountdownLatch.h"
 #include "rocketmq/RocketMQ.h"
 #include "spdlog/spdlog.h"
diff --git a/src/test/cpp/ut/grpc/BUILD.bazel b/src/test/cpp/ut/grpc/BUILD.bazel
index 6194131..1383d88 100644
--- a/src/test/cpp/ut/grpc/BUILD.bazel
+++ b/src/test/cpp/ut/grpc/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 cc_test(
     name = "grpc_thread_pool_test",
diff --git a/src/test/cpp/ut/grpc/GrpcThreadPoolTest.cpp b/src/test/cpp/ut/grpc/GrpcThreadPoolTest.cpp
index 1d5ff71..815dfef 100644
--- a/src/test/cpp/ut/grpc/GrpcThreadPoolTest.cpp
+++ b/src/test/cpp/ut/grpc/GrpcThreadPoolTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "absl/memory/memory.h"
 #include "absl/synchronization/mutex.h"
 #include "rocketmq/RocketMQ.h"
diff --git a/src/test/cpp/ut/grpc/GrpcTimer.cpp b/src/test/cpp/ut/grpc/GrpcTimer.cpp
index ebb9ca0..7be1ce7 100644
--- a/src/test/cpp/ut/grpc/GrpcTimer.cpp
+++ b/src/test/cpp/ut/grpc/GrpcTimer.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 #include "absl/time/time.h"
 #include "grpc/grpc.h"
diff --git a/src/test/cpp/ut/logger/BUILD.bazel b/src/test/cpp/ut/logger/BUILD.bazel
index 1f092b6..7d51c3c 100644
--- a/src/test/cpp/ut/logger/BUILD.bazel
+++ b/src/test/cpp/ut/logger/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 
 cc_test(
diff --git a/src/test/cpp/ut/logger/LoggerTest.cpp b/src/test/cpp/ut/logger/LoggerTest.cpp
index e48b7cb..bfc474b 100644
--- a/src/test/cpp/ut/logger/LoggerTest.cpp
+++ b/src/test/cpp/ut/logger/LoggerTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/Logger.h"
 #include "LoggerImpl.h"
 #include "rocketmq/RocketMQ.h"
diff --git a/src/test/cpp/ut/remoting/BUILD.bazel b/src/test/cpp/ut/remoting/BUILD.bazel
index c0dacd1..6820197 100644
--- a/src/test/cpp/ut/remoting/BUILD.bazel
+++ b/src/test/cpp/ut/remoting/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 
 cc_test(
diff --git a/src/test/cpp/ut/remoting/BrokerDataTest.cpp b/src/test/cpp/ut/remoting/BrokerDataTest.cpp
index 168203c..03d7fee 100644
--- a/src/test/cpp/ut/remoting/BrokerDataTest.cpp
+++ b/src/test/cpp/ut/remoting/BrokerDataTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "BrokerData.h"
 
 #include <iostream>
diff --git a/src/test/cpp/ut/remoting/QueryRouteRequestHeaderTest.cpp b/src/test/cpp/ut/remoting/QueryRouteRequestHeaderTest.cpp
index b80a77a..81ed4dd 100644
--- a/src/test/cpp/ut/remoting/QueryRouteRequestHeaderTest.cpp
+++ b/src/test/cpp/ut/remoting/QueryRouteRequestHeaderTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "QueryRouteRequestHeader.h"
 
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/remoting/QueueDataTest.cpp b/src/test/cpp/ut/remoting/QueueDataTest.cpp
index 936a688..dbf8de9 100644
--- a/src/test/cpp/ut/remoting/QueueDataTest.cpp
+++ b/src/test/cpp/ut/remoting/QueueDataTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "gtest/gtest.h"
 
 #include "QueueData.h"
diff --git a/src/test/cpp/ut/remoting/RemotingCommandTest.cpp b/src/test/cpp/ut/remoting/RemotingCommandTest.cpp
index 088fa87..7a76a06 100644
--- a/src/test/cpp/ut/remoting/RemotingCommandTest.cpp
+++ b/src/test/cpp/ut/remoting/RemotingCommandTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "RemotingCommand.h"
 
 #include <cstdint>
diff --git a/src/test/cpp/ut/remoting/TopicRouteDataTest.cpp b/src/test/cpp/ut/remoting/TopicRouteDataTest.cpp
index 3a11d87..f7f9dee 100644
--- a/src/test/cpp/ut/remoting/TopicRouteDataTest.cpp
+++ b/src/test/cpp/ut/remoting/TopicRouteDataTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "TopicRouteData.h"
 #include "rocketmq/RocketMQ.h"
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/rocketmq/AwaitPullCallbackTest.cpp b/src/test/cpp/ut/rocketmq/AwaitPullCallbackTest.cpp
index b286271..3c7800c 100644
--- a/src/test/cpp/ut/rocketmq/AwaitPullCallbackTest.cpp
+++ b/src/test/cpp/ut/rocketmq/AwaitPullCallbackTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <system_error>
 #include <thread>
 
diff --git a/src/test/cpp/ut/rocketmq/BUILD.bazel b/src/test/cpp/ut/rocketmq/BUILD.bazel
index b1fce27..0fcfa1b 100644
--- a/src/test/cpp/ut/rocketmq/BUILD.bazel
+++ b/src/test/cpp/ut/rocketmq/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test", "cc_library")
 
 cc_test(
diff --git a/src/test/cpp/ut/rocketmq/ClientImplTest.cpp b/src/test/cpp/ut/rocketmq/ClientImplTest.cpp
index 6ac3a01..58d5027 100644
--- a/src/test/cpp/ut/rocketmq/ClientImplTest.cpp
+++ b/src/test/cpp/ut/rocketmq/ClientImplTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <chrono>
 #include <memory>
 #include <string>
diff --git a/src/test/cpp/ut/rocketmq/ConsumeStandardMessageServiceTest.cpp b/src/test/cpp/ut/rocketmq/ConsumeStandardMessageServiceTest.cpp
index 5215ddb..a139e4f 100644
--- a/src/test/cpp/ut/rocketmq/ConsumeStandardMessageServiceTest.cpp
+++ b/src/test/cpp/ut/rocketmq/ConsumeStandardMessageServiceTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ConsumeStandardMessageService.h"
 #include "MessageListenerMock.h"
 #include "ProcessQueueMock.h"
diff --git a/src/test/cpp/ut/rocketmq/ConsumerTest.cpp b/src/test/cpp/ut/rocketmq/ConsumerTest.cpp
index c2d5b72..a8d6d5b 100644
--- a/src/test/cpp/ut/rocketmq/ConsumerTest.cpp
+++ b/src/test/cpp/ut/rocketmq/ConsumerTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ConsumerMock.h"
 #include "gmock/gmock.h"
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/rocketmq/CredentialsProviderTest.cpp b/src/test/cpp/ut/rocketmq/CredentialsProviderTest.cpp
index 859d6f5..6d23bf8 100644
--- a/src/test/cpp/ut/rocketmq/CredentialsProviderTest.cpp
+++ b/src/test/cpp/ut/rocketmq/CredentialsProviderTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/CredentialsProvider.h"
 #include "MixAll.h"
 #include "ghc/filesystem.hpp"
diff --git a/src/test/cpp/ut/rocketmq/DefaultMQProducerTest.cpp b/src/test/cpp/ut/rocketmq/DefaultMQProducerTest.cpp
index 81b07b1..a5247ac 100644
--- a/src/test/cpp/ut/rocketmq/DefaultMQProducerTest.cpp
+++ b/src/test/cpp/ut/rocketmq/DefaultMQProducerTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/DefaultMQProducer.h"
 
 #include <memory>
diff --git a/src/test/cpp/ut/rocketmq/DefaultMQPushConsumerTest.cpp b/src/test/cpp/ut/rocketmq/DefaultMQPushConsumerTest.cpp
index 32f6cef..3b8c793 100644
--- a/src/test/cpp/ut/rocketmq/DefaultMQPushConsumerTest.cpp
+++ b/src/test/cpp/ut/rocketmq/DefaultMQPushConsumerTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/DefaultMQPushConsumer.h"
 
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/rocketmq/DynamicNameServerResolverTest.cpp b/src/test/cpp/ut/rocketmq/DynamicNameServerResolverTest.cpp
index 3aef9df..40c559a 100644
--- a/src/test/cpp/ut/rocketmq/DynamicNameServerResolverTest.cpp
+++ b/src/test/cpp/ut/rocketmq/DynamicNameServerResolverTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "DynamicNameServerResolver.h"
 
 #include <chrono>
diff --git a/src/test/cpp/ut/rocketmq/ExecutorTest.cpp b/src/test/cpp/ut/rocketmq/ExecutorTest.cpp
index b64eaa9..baf8852 100644
--- a/src/test/cpp/ut/rocketmq/ExecutorTest.cpp
+++ b/src/test/cpp/ut/rocketmq/ExecutorTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/RocketMQ.h"
 #include "rocketmq/State.h"
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/rocketmq/FilterExpressionTest.cpp b/src/test/cpp/ut/rocketmq/FilterExpressionTest.cpp
index 5685c3e..d193944 100644
--- a/src/test/cpp/ut/rocketmq/FilterExpressionTest.cpp
+++ b/src/test/cpp/ut/rocketmq/FilterExpressionTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "FilterExpression.h"
 #include "gtest/gtest.h"
 
diff --git a/src/test/cpp/ut/rocketmq/MessageGroupQueueSelectorTest.cpp b/src/test/cpp/ut/rocketmq/MessageGroupQueueSelectorTest.cpp
index 1029924..09f0533 100644
--- a/src/test/cpp/ut/rocketmq/MessageGroupQueueSelectorTest.cpp
+++ b/src/test/cpp/ut/rocketmq/MessageGroupQueueSelectorTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "MessageGroupQueueSelector.h"
 #include "rocketmq/MQMessage.h"
 #include "rocketmq/MQMessageQueue.h"
diff --git a/src/test/cpp/ut/rocketmq/MessageTest.cpp b/src/test/cpp/ut/rocketmq/MessageTest.cpp
index 4fc598c..ed871a2 100644
--- a/src/test/cpp/ut/rocketmq/MessageTest.cpp
+++ b/src/test/cpp/ut/rocketmq/MessageTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "rocketmq/MQMessageExt.h"
 #include <chrono>
 #include <gtest/gtest.h>
diff --git a/src/test/cpp/ut/rocketmq/ProcessQueueTest.cpp b/src/test/cpp/ut/rocketmq/ProcessQueueTest.cpp
index 98c9707..dea0f5a 100644
--- a/src/test/cpp/ut/rocketmq/ProcessQueueTest.cpp
+++ b/src/test/cpp/ut/rocketmq/ProcessQueueTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <chrono>
 #include <functional>
 #include <memory>
diff --git a/src/test/cpp/ut/rocketmq/ProducerImplTest.cpp b/src/test/cpp/ut/rocketmq/ProducerImplTest.cpp
index eb77514..5322f66 100644
--- a/src/test/cpp/ut/rocketmq/ProducerImplTest.cpp
+++ b/src/test/cpp/ut/rocketmq/ProducerImplTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <memory>
 #include <system_error>
 
diff --git a/src/test/cpp/ut/rocketmq/PullConsumerImplTest.cpp b/src/test/cpp/ut/rocketmq/PullConsumerImplTest.cpp
index 6c5ae41..9c0f045 100644
--- a/src/test/cpp/ut/rocketmq/PullConsumerImplTest.cpp
+++ b/src/test/cpp/ut/rocketmq/PullConsumerImplTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <chrono>
 #include <memory>
 #include <string>
diff --git a/src/test/cpp/ut/rocketmq/PushConsumerImplTest.cpp b/src/test/cpp/ut/rocketmq/PushConsumerImplTest.cpp
index 4bacd98..7a25655 100644
--- a/src/test/cpp/ut/rocketmq/PushConsumerImplTest.cpp
+++ b/src/test/cpp/ut/rocketmq/PushConsumerImplTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <memory>
 
 #include "gtest/gtest.h"
diff --git a/src/test/cpp/ut/rocketmq/SendCallbacksTest.cpp b/src/test/cpp/ut/rocketmq/SendCallbacksTest.cpp
index a66005d..5504e64 100644
--- a/src/test/cpp/ut/rocketmq/SendCallbacksTest.cpp
+++ b/src/test/cpp/ut/rocketmq/SendCallbacksTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "SendCallbacks.h"
 #include "gtest/gtest.h"
 #include <thread>
diff --git a/src/test/cpp/ut/rocketmq/StaticNameServerResolverTest.cpp b/src/test/cpp/ut/rocketmq/StaticNameServerResolverTest.cpp
index 6f7ce34..21f20b3 100644
--- a/src/test/cpp/ut/rocketmq/StaticNameServerResolverTest.cpp
+++ b/src/test/cpp/ut/rocketmq/StaticNameServerResolverTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "StaticNameServerResolver.h"
 
 #include "absl/strings/str_split.h"
diff --git a/src/test/cpp/ut/rocketmq/StsCredentialsProviderImplTest.cpp b/src/test/cpp/ut/rocketmq/StsCredentialsProviderImplTest.cpp
index 0daec1e..2e0d356 100644
--- a/src/test/cpp/ut/rocketmq/StsCredentialsProviderImplTest.cpp
+++ b/src/test/cpp/ut/rocketmq/StsCredentialsProviderImplTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "StsCredentialsProviderImpl.h"
 #include "HttpClientMock.h"
 #include "absl/memory/memory.h"
diff --git a/src/test/cpp/ut/rocketmq/include/MQClientTest.h b/src/test/cpp/ut/rocketmq/include/MQClientTest.h
index 05e554d..93064cb 100644
--- a/src/test/cpp/ut/rocketmq/include/MQClientTest.h
+++ b/src/test/cpp/ut/rocketmq/include/MQClientTest.h
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #pragma once
 
 #include <functional>
diff --git a/src/test/cpp/ut/scheduler/BUILD.bazel b/src/test/cpp/ut/scheduler/BUILD.bazel
index d1e0c56..23615c5 100644
--- a/src/test/cpp/ut/scheduler/BUILD.bazel
+++ b/src/test/cpp/ut/scheduler/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 cc_test(
     name = "scheduler_test",
diff --git a/src/test/cpp/ut/scheduler/SchedulerTest.cpp b/src/test/cpp/ut/scheduler/SchedulerTest.cpp
index 827f014..2dfafa7 100644
--- a/src/test/cpp/ut/scheduler/SchedulerTest.cpp
+++ b/src/test/cpp/ut/scheduler/SchedulerTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include <chrono>
 #include <cstdint>
 #include <exception>
diff --git a/src/test/cpp/ut/tracing/exporters/BUILD.bazel b/src/test/cpp/ut/tracing/exporters/BUILD.bazel
index 8646cc8..1fc3477 100644
--- a/src/test/cpp/ut/tracing/exporters/BUILD.bazel
+++ b/src/test/cpp/ut/tracing/exporters/BUILD.bazel
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 load("@rules_cc//cc:defs.bzl", "cc_test")
 
 cc_test(
diff --git a/src/test/cpp/ut/tracing/exporters/OtlpExportersTest.cpp b/src/test/cpp/ut/tracing/exporters/OtlpExportersTest.cpp
index 7cc649d..d0e4ec4 100644
--- a/src/test/cpp/ut/tracing/exporters/OtlpExportersTest.cpp
+++ b/src/test/cpp/ut/tracing/exporters/OtlpExportersTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "ClientConfigMock.h"
 #include "ClientManagerMock.h"
 #include "OtlpExporter.h"
diff --git a/src/test/cpp/ut/tracing/exporters/SpanContextTest.cpp b/src/test/cpp/ut/tracing/exporters/SpanContextTest.cpp
index 0b24824..9730302 100644
--- a/src/test/cpp/ut/tracing/exporters/SpanContextTest.cpp
+++ b/src/test/cpp/ut/tracing/exporters/SpanContextTest.cpp
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 #include "opencensus/trace/propagation/trace_context.h"
 #include "gtest/gtest.h"
 
diff --git a/third_party/BUILD b/third_party/BUILD
deleted file mode 100644
index e69de29..0000000
diff --git a/third_party/BUILD.bazel b/third_party/BUILD.bazel
new file mode 100644
index 0000000..28e0699
--- /dev/null
+++ b/third_party/BUILD.bazel
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/tools/fix_copyright.py b/tools/fix_copyright.py
index 263fe81..24bb8f5 100755
--- a/tools/fix_copyright.py
+++ b/tools/fix_copyright.py
@@ -2,36 +2,57 @@
 import os
 import fnmatch
 
-def checkAndFixFileHeaderComment(fileName, template):
+def checkAndFixFileHeaderComment(fileName, template, bazel=False):
     lines = []
-    with open(fileName, 'rw') as f:
+    with open(fileName, 'r') as f:
         lines = f.readlines()
-    
-    print(template)
-    for line in lines:
-        print(line)
 
+        if len(lines) > 0:
+            if bazel:
+                if lines[0].startswith("#"):
+                    return False
+            else:
+                if lines[0].startswith("/*"):
+                    return False
+        
+        lines.insert(0, template)
+    
+    with open(fileName, 'w') as f:
+        for line in lines:
+            f.write(line)
+    return True
 
 
 def main():
-    template = "/*\n"
-
+    bzl_template = "#" + os.linesep
+    template = "/*" + os.linesep
     with open('tools/copyright.txt', 'r') as reader:
         line = reader.readline()
         while line != '':
            template += " * " + line
+           bzl_template += "# " + line
            line = reader.readline()
-    template += " */"
+    template += " */" + os.linesep
+    bzl_template += "#" + os.linesep
 
+    cnt = 0
     for root, dir, files in os.walk(os.curdir):
         if ".git/" in root:
             continue
 
         for item in fnmatch.filter(files, "*.h"):
-            checkAndFixFileHeaderComment(root + os.sep + item, template)
+            if(checkAndFixFileHeaderComment(root + os.sep + item, template)):
+                cnt = cnt +1
 
         for item in fnmatch.filter(files, "*.cpp"):
-            checkAndFixFileHeaderComment(root + os.sep + item, template)
+            if (checkAndFixFileHeaderComment(root + os.sep + item, template)):
+                cnt = cnt + 1
+
+        for item in fnmatch.filter(files, "*.bazel"):
+            if (checkAndFixFileHeaderComment(root + os.sep + item, bzl_template, bazel=True)):
+                cnt = cnt + 1
+
+    print("{} files fixed".format(cnt))
 
 
 if __name__ == "__main__":