Apache Dubbo
Copyright 2018-2022 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This product contains code form the Netty Project:

The Netty Project
=================
Please visit the Netty web site for more information:
  * http://netty.io/

Copyright 2014 The Netty Project
