Java JBoss AS之外的JBoss模块

Java JBoss AS之外的JBoss模块,java,jboss,jboss7.x,Java,Jboss,Jboss7.x,当我偶然发现锡兰语言使用JBoss模块作为其模块系统时,我第一次发现了对JBoss模块的引用。我马上就想在一些玩具项目中尝试这个系统,甚至可能将它嵌入到一个真正的项目中(当时我正在编写一个支持插件的项目),但我找不到任何关于JBoss模块作为独立库的文档。唯一可用的文档源似乎是,但它看起来已被放弃且不受支持。我甚至找不到它的Javadocs(除了,也许吧,但它似乎非常古老,而且由于链接中存在“osgi”,与JBoss模块没有真正的联系) 似乎JBoss模块在JBoss之外是可用的,因为锡兰语言使

当我偶然发现锡兰语言使用JBoss模块作为其模块系统时,我第一次发现了对JBoss模块的引用。我马上就想在一些玩具项目中尝试这个系统,甚至可能将它嵌入到一个真正的项目中(当时我正在编写一个支持插件的项目),但我找不到任何关于JBoss模块作为独立库的文档。唯一可用的文档源似乎是,但它看起来已被放弃且不受支持。我甚至找不到它的Javadocs(除了,也许吧,但它似乎非常古老,而且由于链接中存在“osgi”,与JBoss模块没有真正的联系)

似乎JBoss模块在JBoss之外是可用的,因为锡兰语言使用它,但是缺少关于这个主题的几乎任何文档是令人失望的

因此,以下是我的问题:

  • 是否可以将JBoss模块用作独立的库?在一些公共Maven存储库中是否有任何工件
  • 如果是(并且有),是否有相关文件?例如,我提到的wiki没有任何关于嵌入JBoss模块的说明
  • 对。实际上,JBoss也是这样使用它的——所以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模块在实际项目中是如何工作的。谢谢