【Ovirt 笔记】JBoss modules 配置分析与整理

文前说明

作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。

本文仅供学习交流使用,侵权必删。
不用于商业目的,转载请注明出处。

分析整理的版本为 Ovirt 3.4.5 版本。

项目的 pom 文件中,使用 <artifactId>jboss-modules-maven-plugin</artifactId> 插件,引入 JBoss 模块化管理,这是 JBoss 支持的静态加载配置方式的一种,采用模块化管理的项目有:dependencies、tools、compat、common、utils、dal、authentication

  1. utils 项目为例,modules 配置文件存放位置:
    /backend/manager/modules/utils/src/main/modules/org/ovirt/engine/core/utils/main/module.xml,配置信息如下:
<module xmlns="urn:jboss:module:1.1" name="org.ovirt.engine.core.utils"> 
    <resources>
        <resource-root path="utils.jar"/> 
    </resources>
    <dependencies> 
        <module name="javax.api"/> 
        <module name="javax.servlet.api"/>
        <module name="org.apache.commons.fileupload"/> 
    </dependencies> 
</module>
  • <module xmlns="urn:jboss:module:1.1" name="org.ovirt.engine.core.utils">
    name 定义了模块名称。
  • <resource-root path="utils.jar"/>,定义了模块生成的 jar 包名称。

注意:如果是第三方依赖,该名称必须与 maven 的 artifactId 一致。

  • <dependencies> 定义了模块的依赖关系,通过 <module name="javax.api"/> 设置依赖的模块名称。

注意:JBoss modules 是一个适用于 Java 的模块化(非层次化)类加载以及执行环境的实现。因此如果一个模块需要另一个模块的某些功能,必须进行依赖,这个依赖是不能传递的,例如 A 依赖于 B,B 依赖于 C,如果 A 使用了 C 的功能,那么 A 必须依赖 C。

  1. Jboss 本身具有了很多的模块,可以直接进行依赖。文件位置:安装目录 /modules 中。例如 javax.api、javax.servlet.api 都是 Jboss 自带的模块。

  2. 配置了模块,还需要把模块与 maven 管理的 jar 包配置建立关联关系。这部分工作 dependencies 项目进行了配置。engine 中只要是采用模块化管理的项目中引入了第三方包,都需要在 dependencies 项目中进行关联性配置。

  • dependenciespom 文件,配置了<dependency>,这里定义了 mavenjar 包管理。
  • <artifactId>jboss-modules-maven-plugin</artifactId><modules> 标签中,配置了模块的关联关系,例如:
<module> 
    <groupId>commons-fileupload</groupId> 
    <artifactId>commons-fileupload</artifactId>  
    <moduleName>org.apache.commons.fileupload</moduleName> 
</module>

mavencommons-fileupload 包与模块 org.apache.commons.fileupload 进行关联。

  1. utils 为例,依赖其他模块。
  • 依赖 Jboss 自身包含的模块,那么只需要在 modules 文件中配置即可。
<dependencies> 
    <module name="javax.api"/> 
    <module name="javax.servlet.api"/> 
</dependencies>
  • 依赖的第三方包,是 Jboss 自身不包含的,那么需要在
    /backend/manager/dependencies/src/main/modules 文件夹下面,按模块名称建立目录。例如 org.apache.commons.fileupload 就需要创建 org/apache/commons/fileupload/main/ 目录,在该目录下创建 module.xml 配置文件,配置为新的模块:
<module xmlns="urn:jboss:module:1.1" name="org.apache.commons.fileupload">
    <resources> 
        <resource-root path="commons-fileupload.jar"/> 
    </resources> 
    <dependencies> 
        <module name="javax.servlet.api"/> 
        <module name="org.apache.commons.io"/> 
    </dependencies> 
</module>

再引入该模块:

<dependencies> 
    <module name="javax.api"/> 
    <module name="javax.servlet.api"/> 
    <module name="org.apache.commons.fileupload"/> 
</dependencies>

最理想的配置是,所有的模块都能找到依赖关系,最底层的依赖是 Jboss 自身包含的依赖。但是实际情况可能会复杂很多,模块与模块的依赖关系,可以通过查询 maven中央库 了解。

  • 如果模块单独使用的可能性不大,每次都需要联合其他模块一起使用实现某个功能,那么可以将这些模块统一配置为一个模块,简化配置。例如:
<module xmlns="urn:jboss:module:1.1" name="org.springframework"> 
    <resources> 
        <resource-root path="spring-aop.jar"/>
        <resource-root path="spring-asm.jar"/>
        <resource-root path="spring-beans.jar"/> 
        <resource-root path="spring-context.jar"/> 
        <resource-root path="spring-core.jar"/> 
        <resource-root path="spring-expression.jar"/> 
        <resource-root path="spring-instrument.jar"/> 
        <resource-root path="spring-jdbc.jar"/> 
        <resource-root path="spring-ldap-core.jar"/> 
        <resource-root path="spring-tx.jar"/> 
    </resources> 
    <dependencies> 
        <module name="javax.api"/> 
        <module name="org.apache.commons.lang"/> 
        <module name="org.apache.commons.logging"/> 
        <module name="org.aopalliance"/> 
        <module name="sun.jdk"/> 
    </dependencies> 
</module> 

将 spring 所需 jar 包统一划分为一个模块,使用到 spring 的地方,统一引入该模块即可。



作者:羽杰
链接:https://www.jianshu.com/p/c4e570176311
來源:简书
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
oVirt配置GlusterFS可以分为以下几个步骤: 1. 安装GlusterFS:在oVirt主机上安装GlusterFS服务器软件。可以使用yum或者其它包管理工具来安装GlusterFS。 2. 创建GlusterFS存储池:使用GlusterFS创建一个存储池,并将其添加到oVirt中作为一个数据存储域。可以使用GlusterFS的命令行工具来创建存储池,例如gluster volume create命令。在创建存储池时,需要指定存储池的名称、存储池的类型(例如分布式、复制等)、存储池的大小等信息。 3. 将存储池添加到oVirt:在oVirt管理界面中,将GlusterFS存储池添加为一个数据存储域。在oVirt中,存储域是用来存储虚拟机磁盘镜像、ISO镜像和虚拟机快照的存储空间。在添加存储池时,需要指定存储池的名称、存储池的类型(例如文件、块等)、存储池的地址等信息。 4. 创建虚拟机磁盘:在oVirt中创建虚拟机并为其分配一个GlusterFS存储域作为磁盘存储。可以使用oVirt管理界面或者oVirt API来创建虚拟机。在创建虚拟机时,需要指定虚拟机的名称、虚拟机的磁盘大小、虚拟机的操作系统等信息。同时,还需要指定虚拟机的磁盘存储域为GlusterFS存储域。 5. 启动虚拟机:在完成虚拟机的创建后,可以启动虚拟机并开始使用它。在虚拟机启动后,可以通过oVirt管理界面或者SSH等方式来访问虚拟机。同时,还可以使用oVirt的监视工具来监视虚拟机的状态和性能。 总之,配置GlusterFS存储池并将其添加到oVirt中作为一个数据存储域,可以为oVirt虚拟化环境提供高可用性和可扩展性。同时,使用GlusterFS作为虚拟机磁盘存储,还可以提高虚拟机的可用性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值