[ASoC 2022] Research and development of API exposure and modular mechanism
- Dominant language
- Java
- Stars
- 41.6k
- Forks
- 26.4k
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 4
Description
## Background
This is an basic subject of [ASoC 2022](https://opensource.alibaba.com/asoc2022) and https://github.com/apache/dubbo/issues/10088 .
During the iteration process of Dubbo version, the interface signatures of internal interdependence are easily changed. However, many of these APIs that are only used internally by Dubbo are misused by users. In order to better control the API information exposed by Dubbo, Dubbo hopes to classify APIs into three types: those exposed to users, those used by Dubbo internally, and those used by unit tests. Based on this, it is necessary to force the stuck point when Dubbo compiles, so as to avoid users relying on the API used internally.
## Difficulty
Basic
## Mentor
- @AlbumenJ albumenj@apache.org
## Related
Guava's VisibleForTesting and kolin's OptIn, the module mechanism started in JDK9
#
## 背景
这是一个[阿里巴巴编程之夏 2022](https://opensource.alibaba.com/asoc2022) 的基础课题 https://github.com/apache/dubbo/issues/10088 。
在 Dubbo 版本迭代过程中,内部相互依赖的接口签名很容易被改动。但是这些仅 Dubbo 内部使用的 API 很多被用户误使用。为了更好地控制 Dubbo 对外暴露的 API 信息,Dubbo 希望将 API 分类为三种类型:暴露给用户开放使用的、内部 Dubbo 使用的、单元测试使用的。基于此在 Dubbo 编译的时候进行强制卡点,避免用户依赖内部使用的 API。
## 难度
基础
## 导师
- @AlbumenJ albumenj@apache.org
## 相关参考
Guava 的 VisibleForTesting 和 kolin 的 OptIn、JDK9 中开始提供的 module 机制
Contributor guide
Assessment
This issue has not been assessed yet.