[發明專利]用于類改變的適應性熱重載在審
| 申請號: | 202011606794.8 | 申請日: | 2020-12-30 |
| 公開(公告)號: | CN114281597A | 公開(公告)日: | 2022-04-05 |
| 發明(設計)人: | S.埃帕道德;S.道格拉斯 | 申請(專利權)人: | 紅帽公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14 |
| 代理公司: | 北京市柳沈律師事務所 11105 | 代理人: | 胡琪 |
| 地址: | 美國北卡*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 改變 適應性 重載 | ||
1.一種方法,包含:
檢測對軟件應用程序的項目文件的更新;
確定所述更新是否表示對所述軟件應用程序的類結構的改變;
響應于確定所述更新不表示對所述類結構的改變,用基于對所述項目文件的更新而生成的新框架元數據來替換與所述項目文件相對應的類的框架元數據;
響應于確定所述更新表示對所述類結構的改變:
移除所述軟件應用程序的運行時可執行單元;
至少部分地基于對所述項目文件的更新,生成所述軟件應用程序的替換運行時可執行單元;以及
用所述替換運行時可執行單元來重新部署所述軟件應用程序;以及遵照對所述項目文件的更新來執行所述軟件應用程序。
2.根據權利要求1所述的方法,其中,所述運行時可執行單元包括類加載器,并且其中,生成所述替換運行時可執行單元包括生成所述軟件應用程序的替換類加載器。
3.根據權利要求2所述的方法,其中,生成所述替換運行時可執行單元包含對于軟件項目內的依賴關系注入類選擇性地生成替換字節碼。
4.根據權利要求1所述的方法,進一步包含生成差異日志,所述差異日志標識出(i)被所述更新改變的一個或多個類,(ii)被所述更新改變的所述一個或多個類的類型,以及(iii)所述更新對所述一個或多個類做出的改變。
5.根據權利要求4所述的方法,其中,確定所述更新是否表示對所述類結構的改變進一步包含在所述差異日志內識別一改變,所述改變標識出以下一項或多項:向所述類結構添加新類、改變所述類結構內的類的注釋元數據、改變所述類結構內的方法的字段、以及改變所述類結構內的方法的名稱。
6.根據權利要求1所述的方法,其中,所述軟件應用程序是Java軟件應用程序,并且所述運行時可執行單元和所述替換運行時可執行單元都是Java類加載器。
7.根據權利要求6所述的方法,其中,所述新框架元數據是通過Java InstrumentationAPI生成的。
8.根據權利要求1所述的方法,其中對所述項目文件的更新包括對所述軟件應用程序的類文件的改變。
9.一種系統,包含:
處理器;以及
存儲指令的存儲器,所述指令在由所述處理器執行時使所述處理器:
檢測對軟件應用程序的項目文件的更新;
通過以下方式來生成所述軟件應用程序的替換運行時可執行單元,對于所述軟件應用程序的多個類中的每個相應類:
確定與所述相應類相對應的應用程序框架類是否由于對所述項目文件的更新而被改變;
響應于確定與所述相應類相對應的應用程序框架類被改變,重新生成所述相應類的框架元數據;以及
響應于確定與所述相應類相對應的應用程序框架類未被改變,重復使用所述相應類的框架元數據;以及
遵照對所述項目文件的更新來執行所述軟件應用程序。
10.根據權利要求9所述的系統,其中,所述框架元數據包括所述相應類的先前生成的字節碼。
11.根據權利要求10所述的系統,其中,所述先前生成的字節碼包括上下文和依賴關系注入(CDI)客戶端代理。
12.根據權利要求9所述的系統,其中,所述軟件應用程序是Java軟件應用程序,其中,所述應用程序框架類是依賴關系注入類,并且其中,所述依賴關系注入類是通過上下文和依賴關系注入(CDI)注釋來標識的。
13.根據權利要求12所述的系統,其中,所述CDI注釋將所述應用程序框架類標識為所述軟件應用程序內的CDIBean類。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于紅帽公司,未經紅帽公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011606794.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:使用部署元數據避免平臺和服務中斷
- 下一篇:冰箱及食材管理界面的更新方法





