alibaba / alibaba/one-java-agent
增强 java.lang.ClassLoader ,允许加载插件注册的类
オープン
- 主要言語
- Java
- スター
- 579
- フォーク
- 128
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
在插件增强目标类的字节码之后,通常会插入 插件自身的代码,那么要解决这些插入的代码的加载问题。
常见的办法有几种:
* 把插件的jar,强行加到ClassLoader的 urls里,像pinpoint就这样子的
* 把插件的jar,加到 system classloader的 urls,或者 bootstrap classloader的 urls
还有一种办法是增强 java.lang.ClassLoader ,在 loadClass 函数里,查找到插件的类,直接返回。
同时可能还要修改 checkPackageAccess 函数。
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
Issue で挙げられている java.lang.ClassLoader のエントリーポイント、特に loadClass と場合によっては checkPackageAccess から始め、次にこの agent が現在 enhanced classes と plugin JAR をどのように扱っているかを調べます。Issue では複数のアプローチが提示されていますが、ファイルやテストは指定されていません。先に進むには、ロードの設計を決定し、plugin に登録されたクラスをどのように解決するかを定義する必要があります。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- tooling
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100