-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
修复JvmPlugin无法通过自己的classLoader以getResource的方法获取全局依赖的class文件 #2536
Conversation
…of global dependencies), fix mamoe#2535
mirai-console/backend/mirai-console/src/internal/plugin/AllDependenciesClassesHolder.kt
Outdated
Show resolved
Hide resolved
mirai-console/backend/mirai-console/src/internal/plugin/JvmPluginClassLoader.kt
Outdated
Show resolved
Hide resolved
添加测试单元 |
我阅读集成单元测试的测试报告以及源码后发现在 assertNull(javaClass.getResource("/net/mamoe/mirai/console/MiraiConsole.class"))
assertNull(javaClass.getResource("/net/mamoe/mirai/Bot.class")) 正是这两句断言导致我的集成测试失败,但是看起来似乎最初这里是不希望 |
已经不太记得当时为啥添加这个限制了,你可以在 jvmpluginclasspath 添加个方法启动搜索 |
mirai-console/backend/mirai-console/src/internal/plugin/JvmPluginClassLoader.kt
Show resolved
Hide resolved
mirai-console/backend/mirai-console/src/plugin/jvm/JvmPluginClasspath.kt
Outdated
Show resolved
Hide resolved
mirai-console/backend/mirai-console/src/plugin/jvm/JvmPluginClasspath.kt
Outdated
Show resolved
Hide resolved
…e and standardize its KDoc
...sole/backend/integration-test/testers/service-loader/service-loader-2dep-plugin/src/PMain.kt
Outdated
Show resolved
Hide resolved
mirai-console/backend/mirai-console/src/plugin/jvm/JvmPluginClasspath.kt
Outdated
Show resolved
Hide resolved
...sole/backend/integration-test/testers/service-loader/service-loader-2dep-plugin/src/PMain.kt
Outdated
Show resolved
Hide resolved
话说我应该Update branch吗,还是就这样一直放着就好(小声 |
GitHub 没说有冲突就不用更新 |
@Karlatemp merge? |
ok |
* [console] Fixed classLoaders of JvmPlugin cannot getResource(classes of global dependencies), fix mamoe#2535 * [core/utils/jvm] new fun: addAll(Enumeration) * [console] modify DynLibClassLoader.tryFastOrStrictResolveResource to tryFastOrStrictResolveResources * [console] remove allClassesAsResources field * [console] add var to control whether class files of mirai dependencies could be load as resources * [console/integration-test] modify loader test * [console] dump new apis * [console] rename JvmPluginClasspath.openMiraiDependenciesClassResource and standardize its KDoc * [console] modify the KDoc of JvmPluginClasspath.shouldResolveConsoleSystemResource * [console/integration-test] improve resources loading test cases * [console/integration-test] modify assert to assertTrue
fix #2535
原本JvmPlugin的classLoader可以正确地加载到全局依赖的Class对象,但无法通过getResource方法获取到其class文件。