Java JBoss AS之外的JBoss模块
当我偶然发现锡兰语言使用JBoss模块作为其模块系统时,我第一次发现了对JBoss模块的引用。我马上就想在一些玩具项目中尝试这个系统,甚至可能将它嵌入到一个真正的项目中(当时我正在编写一个支持插件的项目),但我找不到任何关于JBoss模块作为独立库的文档。唯一可用的文档源似乎是,但它看起来已被放弃且不受支持。我甚至找不到它的Javadocs(除了,也许吧,但它似乎非常古老,而且由于链接中存在“osgi”,与JBoss模块没有真正的联系) 似乎JBoss模块在JBoss之外是可用的,因为锡兰语言使用它,但是缺少关于这个主题的几乎任何文档是令人失望的 因此,以下是我的问题:Java JBoss AS之外的JBoss模块,java,jboss,jboss7.x,Java,Jboss,Jboss7.x,当我偶然发现锡兰语言使用JBoss模块作为其模块系统时,我第一次发现了对JBoss模块的引用。我马上就想在一些玩具项目中尝试这个系统,甚至可能将它嵌入到一个真正的项目中(当时我正在编写一个支持插件的项目),但我找不到任何关于JBoss模块作为独立库的文档。唯一可用的文档源似乎是,但它看起来已被放弃且不受支持。我甚至找不到它的Javadocs(除了,也许吧,但它似乎非常古老,而且由于链接中存在“osgi”,与JBoss模块没有真正的联系) 似乎JBoss模块在JBoss之外是可用的,因为锡兰语言使
实际上,我从vimeo的这次演示中获得了大部分信息。那里似乎也有视频。如果您想直接试用JBoss模块,您可以从JBoss Nexus存储库获取依赖项: 不幸的是,关于JBoss模块的文档并不多,但是如果您想尝试一下,您可能不想自己手工编写Modules.xml文件(我不知道您是否喜欢痛苦) 如果您想尝试“熔炉”这个基于JBoss模块和Maven的模块化容器,它是系统的核心模块,它使您能够编写可以直接作为模块加载的Maven项目。这就是我们在整个Forge 2体系结构中使用的内容 您可以在此处找到有关熔炉的一些文档:
注意,熔炉插件需要一个maven分类器,如果需要,您可以选择使用的分类器。这是通过熔炉管理员完成的(可以在上面的熔炉文档中看到)。如果您在这里没有得到一个好的答案,那么我可以想象,如果您在锡兰开发邮件列表上问得很好,那里的某个人可能会为您指出正确的方向。@TomAnderson,谢谢,如果没有人回答,我想我会这么做。为什么在锡兰邮件列表上,当freenode上有
#jboss模块时。@eis:哦,我不知道。这也值得一试!询问锡兰人的问题是,他们可能会有用户对它的看法,这有时比开发人员对其他用户的看法更有用。虽然我怀疑锡兰的一些开发人员也是JBoss模块的开发人员,“但通常不应该嵌入JBoss模块”,这正是缺乏文档的结果。我认为它是一种库,而不是类似于OSGi容器的东西。在这种情况下,基于插件的应用程序将具有不同于库的体系结构。@Vladimitavevevev是的,同意。我对“在它内部运行”部分有误导性,将其视为引导程序而不是容器可能更值得。不过,它不仅仅是一些库,而是启动实体。查看我链接的视频。谢谢,这些视频似乎很有帮助。我猜它们可以作为一种文档使用。您可以始终将JBoss模块用作库,这就是我们在Firefox中所做的,以便定义容器提供的模块(请参阅批准的答案)-在这种情况下,您只需将其用作类加载器工厂,但您必须自己用Java定义模块。这很好:谢谢,熔炉看起来很有前途。但它似乎不像OSGi那样动态。由于模块是在Maven中定义的,添加新模块将需要重建主应用程序。也许我错了?还有,为什么编写modules.xml
会很痛苦?IIUC,它是模块描述符,需要将模块与其依赖项链接。您不需要重建主应用程序来加载新模块。您只需禁用/(重新)安装/启用,模块容器将重新加载执行模块热插拔所需的任何模块。这就是你的意思吗?我演示的示例实际上显示了这一点,但只是安装部分。实际上,maven只是将模块部署到熔炉的一种方法。如果需要,您可以进行普通的文件复制,只需编辑registry/installed.xml文件,以获取文件系统(监控文件更改)中的更改。只需注意:OSGi的好处是无需重新加载容器即可注入运行时依赖项,因此,这比这里提到的任何其他解决方案都更具动态性。好的,谢谢您的解释。我想炉子是适合我需要的东西。至少我可以尝试了解JBoss模块在实际项目中是如何工作的。谢谢