[发明专利]获得系统代码修改后受影响的对外提供服务接口的方法在审
申请号: | 202110408988.5 | 申请日: | 2021-04-16 |
公开(公告)号: | CN112817637A | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 黄勇 | 申请(专利权)人: | 四川新网银行股份有限公司 |
主分类号: | G06F8/73 | 分类号: | G06F8/73;G06F8/72;G06F8/30;G06F8/36;G06F9/448 |
代理公司: | 成都智言知识产权代理有限公司 51282 | 代理人: | 濮云杉 |
地址: | 610094 四川省成都市*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 获得 系统 代码 修改 影响 对外 提供 服务 接口 方法 | ||
1.获得系统代码修改后受影响的对外提供服务接口的方法,其特征在于,包括以下步骤:
步骤1:标识出系统对外提供服务接口方法;步骤2:获得系统代码的不同版本之间修改代码后受影响的方法列表及对外提供服务方法列表;步骤3:解析代码的字节码获得方法的调用链路;步骤4:通过获得系统代码修改后受影响到的对外提供服务接口的方法列表。
2.根据权利要求1所述的获得系统代码修改后受影响的对外提供服务接口的方法,其特征在于,步骤1具体如下:
梳理出系统所有对外提供服务的接口方法,在每一个接口方法的代码注释里加一个标签注释符,用于标注该接口方法是一个提供给外部调用的方法。
3.根据权利要求2所述的获得系统代码修改后受影响的对外提供服务接口的方法,其特征在于,步骤2具体如下:
2.1 通过接受系统代码git分支的两个版本的commitid,获得系统的不同版本的源代码;将获得的两个版本的系统源代码分别保存在version0与version1目录下;
2.2 分别遍历version0与version1目录下的所有的Java代码,通过解析java代码,生成代码的抽象语法树AST,进一步解析抽象语法树,将每一个java文件的方法相关信息解析出来,获得包名、类名、方法名、方法参数、方法体内容和方法注释的各种方法相关的信息,并保存在一个专门的方法数据结构里;
2.3 对步骤2.2获得的方法信息进行进一步处理,将方法的包名、类名、方法名、方法参数字符串合并组成一个方法标识字符串,并对该方法标识字符串进行MD5计算,获得方法标识MD5值;同时对方法体内容进行MD5计算,获得方法体内容的MD5值,对信息进行保存;对于方法体内容,只保存方法体内容的MD5值,不保存方法体的原始内容,最后分别获得version0所有方法的数据结构及version1所有方法的数据结构;
2.4 对方法数据结构里的方法注释进行再处理,判断是否包含有对外服务接口方法标识;如果有,则将该方法标识为对外服务接口方法;
2.5 以步骤version0方法数据结构作为基准,同version1方法数据结构进行比对,找出version0里方法标识字符串MD5值与version1 里方法标识字符串MD5值相同的方法,使用该方法的方法内容MD5值进行比较,如果不相等,将标识该方法为已修改;将version0里方法标识字符串MD5值在version1 找不到的方法,标识为方法已删除;将在version0里没有,但是在version1有的方法,标识为新增方法;已修改方法、已删除方法、新增方法即为系统代码修改后受影响的方法。
4.根据权利要求3所述的获得系统代码修改后受影响的对外提供服务接口的方法,其特征在于,步骤3具体如下:
3.1解析步骤2.2生成的version1目录下的所有的Java文件的.class字节码,并解析每个类的每个方法的字节码中的方法调用关键字,获得每个类的每个方法的包名、类名、方法名、方法参数以及其方法体内部调用的其它方法,并对获得的调用的其它方法的字符串进一步解析,获得调用方法的包名、类名、方法名、方法参数,将每个类的每个方法信息及方法继续调用的其它方法的包名、类名、方法名、方法参数保存到方法调用链路数据结构;
3.2对方法调用链路数据结构里的每个方法调用链路,再进行二次分析处理;以每个方法为基准,获得在每个方法体里直接调用的其它方法的信息包名、类名、方法名;通过这些方法标识,找到对应的方法信息,获得方法调用的其它方法,通过递归查询,最终获得每个方法调用的所有方法链路。
5.根据权利要求4所述的获得系统代码修改后受影响的对外提供服务接口的方法,其特征在于,步骤4包括如下步骤:
4.1 用步骤3.2获得方法的调用链路与步骤2.4获得对外服务接口方法取交集,获得所有对外接口服务方法的调用链路清单;
4.2 使用步骤4.1获得的对外接口服务方法调用链路清单,同步骤2.5获得的已修改方法、已删除方法、新增方法取交集;获得交集不为空的对外接口服务方法,表示该对外接口服务方法的调用链路使用了本次代码修改后受影响的方法,将该对外接口服务方法标识为受影响方法;将所有交集不为空的对外接口服务方法保存到一个列表清单,标识为系统修改代码后受影响的对外提供服务接口方法列表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川新网银行股份有限公司,未经四川新网银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110408988.5/1.html,转载请声明来源钻瓜专利网。