alibaba / alibaba/one-java-agent

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

Offen
#7 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
579
Forks
128
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

在插件增强目标类的字节码之后,通常会插入 插件自身的代码,那么要解决这些插入的代码的加载问题。

常见的办法有几种:

* 把插件的jar,强行加到ClassLoader的 urls里,像pinpoint就这样子的
* 把插件的jar,加到 system classloader的 urls,或者 bootstrap classloader的 urls

还有一种办法是增强 java.lang.ClassLoader ,在 loadClass 函数里,查找到插件的类,直接返回。

同时可能还要修改 checkPackageAccess 函数。

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginnen Sie mit den im Issue genannten Einstiegspunkten von java.lang.ClassLoader, insbesondere loadClass und möglicherweise checkPackageAccess, und untersuchen Sie anschließend, wie dieser Agent derzeit mit erweiterten Klassen und Plugin-JARs umgeht. Das Issue stellt mehrere mögliche Ansätze vor, nennt jedoch keine Dateien oder Tests; für weitere Fortschritte muss das Lades设计 festgelegt und definiert werden, wie von Plugins registrierte Klassen aufgelöst werden sollen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
tooling
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.