【技术实现步骤摘要】
桥接模块系统和非模块系统
[0001]本申请是申请日为2016年4月28日、申请号为201680001886.9、名称为“桥接模块系统和非模块系统”的专利技术专利申请的分案申请。
[0002]本公开内容涉及模块系统和非模块系统。具体而言,本公开内容涉及用于桥接模块系统和非模块系统的技术。
技术介绍
[0003]用于开发和维护软件的计算平台一般而言依赖两种类型的系统之一:模块系统和非模块系统。
[0004]非模块系统是指其中不同代码片之间的依赖性未严格声明或限制的系统。行业定义的术语“JAR hell”是指Java归档(JAR)文件在非模块系统中的示例使用,这导致例如对于类加载过程的问题。
[0005]模块系统包括标准模块的集合并且定义标准模块的集合如何一起工作。标准模块的集合中的每个特定标准模块可以显式地定义对其它标准模块(或者其内容)的依赖性。但是,标准模块通常在显式地依赖任何非模块代码方面受限制。
[0006]图1A示出了具有模块环境102的部件和非模块环境130的部件的系统100。非模块环境130包括非模块代码132
‑
146。不同的非模块代码之间的依赖性不需要显式地声明。因而,当第一非模块代码依赖于第二非模块代码时,软件开发环境必须在与所有代码相关联的文件集合的所有文件中搜索第二非模块代码。不同的非模块代码之间的依赖性(可能没有显式声明)在图1A中利用箭头示出。例如,非模块代码132对非模块代码140的依赖性利用在非模块代码132开始并在非模块代码140结束的 ...
【技术保护点】
【技术特征摘要】
1.一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质包括指令,所述指令当被一个或多个硬件处理器执行时,使得以下操作被执行,包括:识别代码基,所述代码基包括:第一非模块代码,第一非模块代码不与任何模块描述符相关联;第二非模块代码,第二非模块代码不与任何模块描述符相关联;第一模块,第一模块与第一模块描述符相关联,其中第一模块描述符在包括基于与第二非模块代码对应的命名空间的显式依赖性方面受限制;生成用于第一非模块代码的第二模块;及其中生成操作包括:定义第二模块描述符,所述第二模块描述符(a)对应于第二模块并且(b)包括基于与第二非模块代码对应的所述命名空间的所述显式依赖性;其中定义第二模块以包括所述显式依赖性是响应于确定第一非模块代码与所述命名空间相关联的,或者其中定义第二模块以包括所述显式依赖性是独立于第一非模块代码的任何内容或依赖性的。2.如权利要求1所述的介质,其中所述命名空间包括与第二非模块代码对应的依赖性路径。3.如权利要求1所述的介质,其中,在第二模块描述符中,所述显式依赖性显式地参考所述命名空间或者显式地参考与所述命名空间对应的第三非模块代码。4.如权利要求1所述的介质,其中第二非模块代码不被第一非模块代码使用或要求,并且其中,在第二模块描述符中,所述命名空间允许第二模块访问第二非模块代码,即使第二非模块代码不被第一非模块代码使用或要求。5.如权利要求1所述的介质,其中对应于第二模块的第二模块描述符由系统响应于所述系统检测到触发事件的发生而定义。6.如权利要求1所述的介质,其中所述操作还包括:确定第一非模块代码不对应于所述代码基中的所述多个模块中的任何一个;及其中生成用于第一非模块代码的第二模块是至少响应于确定第一非模块代码不对应于所述代码基中的所述多个模块中的任何一个的。7.如权利要求1所述的介质,其中所述操作还包括:接收以下至少一个:(a)用于执行模块操作的第一命令,该命令包括第一非模块代码作为参数;(b)包括MODULEPATH关键字的第二命令,该第二命令参考用于第一非模块代码的标识符作为参数,或者(c)要求第一非模块代码的模块化的第三命令;及其中生成用于第一非模块代码的第二模块是响应于接收第一命令、第二命令或第三命令当中的至少一个的。8.如权利要求1所述的介质,其中所述代码基还包括(a)在显式地依赖于与非模块代码的一个或多个集合对应的所述命名空间方面受限制的标准模块的第一集合,和(b)在显式地依赖于与非模块代码的所述一个或多个集合对应的所述命名空间方面不受限制的桥接模块的第二集合。9.如权利要求1所述的介质,其中第二模块是桥接模块,并且其中所述操作还包括:在生成所述桥接模块之后:利用对所述桥接模块的显式依赖性成功地证实特定的标准模块;及
其中该特定的标准模块在包括对所述命名空间的显式依赖性方面受限制。10.如权利要求1所述的介质,其中所述操作还包括:基于以下一个或多个来定义包括特定显式依赖性的第二模块描述符:多个模块中允许由第二模块的显式依赖性的每个模块;所述多个模块中对执行由标准模块组成的应用所必需的每个模块;所述多个模块中每个能够观察到的标准模块;由开发者列举的每个标准模块;及除第二模块之外的每个桥接模块。11.如权利要求1所述的介质,其中所述操作还包括:定义第二模块描述符,以允许第一非模块代码中的每个包被任何标准模块、任何桥接模块和任何非模块代码访问。12.如权利要求1所述的介质,其中生成用于第一非模块代码的第二模块至少响应于:确定第一非模块代码不包含任何重复的包;确定第一非模块代码不依赖于多个模块中受限制的模块集合中任何一个;及确定第一非模块代码不查找在所述多个模块中的其它模块中的类或资源。13.一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质包括指令,所述指令当被一个或多个硬件处理器执行时,使得以下操作被执行,包括:识别代码基,所述代码基包括:第一非模块代码,第一非模块代码不与任何模块描述符相关联;第二非模块代码,第二非模块代码不与任何模块描述符相关联;第一模块,第一模块与第一模块描述符相关联,其中第一模块描述符在包括基于与第二非模块代码对应的命名空间的显式依赖性方面受限制;生成用于第一非模块代码的第二模块;及其中生成操作包括:定义第二模块...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。