Shadow icon indicating copy to clipboard operation
Shadow copied to clipboard

提问:插件引用宿主资源

Open TestPlanB opened this issue 3 years ago • 3 comments

新人入坑提问,一般插件化框架会有这个问题,如果插件a引用了宿主的资源7f1111,如果宿主新加了一个同类型资源,导致编译时资源id被重新排列,此时插件a的资源7f1111就不是原来宿主资源了,这个shadow有没有处理?没有看到相关的代码,是不处理嘛

TestPlanB avatar Jan 10 '22 09:01 TestPlanB

插件不能直接引用宿主资源ID,就像插件不能直接引用宿主类一样。Shadow做了宿主和插件的隔离,就是为了让宿主和插件版本关系可以多对多。在此之上Shadow提供了插件访问宿主类的白名单机制,可以把稳定的接口放在其中。通过这个接口宿主和插件才可以相互调用。因此最好通过Java接口从宿主提供资源给插件。

shifujun avatar Jan 10 '22 09:01 shifujun

想问一下shadow未来发展方向,如果插件之间存在着多个可复用的资源对象,按照其他的插件化框架,都想着用宿主去存着这些公共资源。shadow在未来插件中可复用的东西越来越多的时候,会怎么采取策略?

TestPlanB avatar Jan 10 '22 09:01 TestPlanB

我想插件技术最重要的特性就是满足宿主和插件的多对多版本关系。因此把插件的可复用资源放在宿主中不是个好主意。

shifujun avatar Jan 10 '22 09:01 shifujun