在这里,我再次寻求启蒙。情况如下:
我们有一个在 Wildfly 11 中运行的任务引擎,它在很大程度上依赖于通过反射进行动态加载。不需要说我们对所有东西都有一个抽象的“基”类。它依赖于使用简单 Class.forName() 加载实现的数据库注册。对于平时的工作,它运行平稳。由于我们的引擎有不同的模块,我们已经使用 jboss-deployment-structure.xml 来告诉 Wildfly“Process”模块依赖于“Core”模块等等。
但是现在,我们需要使用“插件”,这样我们的客户就可以在另一个包中创建自己的实现,并将它们简单地注册到我们的数据库中。
问题是:我如何告诉 Wildfly、类加载器或管理它的神在不使用 .xml 依赖文件的情况下在插件中加载类,因为它会创建一个“令人遗憾的”循环依赖(插件已经声明它是对 Core 包的依赖项)
是否有可能在实现中不进行硬更改(例如使插件初始化以将自己声明为核心或其他东西)?我们有很多代码,目前这种重构是不可行的。
此致,
费尔南多·奥古斯托。