alibaba / alibaba/one-java-agent

增强 java.lang.ClassLoader ,允许加载插件注册的类

オープン
#7 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。