jira8.0 api變化--含解決方法


參考atlassian官方的升級到jira8.0的文檔

其中跟開發相關的有一下幾點:

  1. 結束對PostgreSQL 9.3的支持
  2. 結束對MySQL 5.5的支持
  3. 結束對com.atlassian.fugue的支持(Jira Service Desk)。目前的影響是globalPermissionManager.getGlobalPermission的返回值option的路徑變了,jira8以前的路徑是:com.atlassian.fugue.Option.Jira8的路徑是io.atlassian.fugue.Option
  4. ContainerProvider SPI移除。(com.atlassian.jira.component.pico.extension.ContainerProvider )
  5. ComponentManager已移動

    工件中的  ComponentManager 類  jira-core已從com.atlassian.jira 包移動  到  com.atlassian.jira.component.pico 包,以改進包結構。

    • 使用jira-api的ComponentAccessor  。
    • 插件一般不應完全取決於  jira-core Maven工件中的任何內容,因為它是非API的,因此Jira團隊可能會更改,恕不另行通知。
  6. 使用utf8mb4支持MySQL
  7. jQuery升級。jQuery從1.7.2升級到2.2.4
  8. Apache Tomcat升級。Tomcat升級到版本8.5.32,升級到Jira 8.0時可能需要進行一些更改。

 

項目中不兼容的實例

1.com.atlassian.plugin.Plugin#isEnabled

原因:方法棄用

狀態:已修復

解決方案:改用#getPluginState

示例:

 

總結:ira的api版本變化不會一個版本直接把上個版本棄用的代碼直接刪除,而是用@deprecated聲明,在未來的某個版本中再棄用。

所以,我們在調用api的時候,要避免使用已經棄用的方法.

2.com.atlassian.jira.issue.search.SearchResults#getIssues

場景:

狀態:暫無解決方案 

狀態:已解決

原因:api變動

jira7
jira8
分析

jira8對SearchResults進行了改造,增加泛型的支持,SearchResults不僅僅是用來存放Issue的查詢結果,還可以查詢其他類型,所以去除了#getIssues方法,用#getResults方法替代。

但是升級沒考慮兼容性,之前的方法不應該刪除,或者新建一個類來實現通用的查詢。

解決方案:

兼容類
使用

 

3.Required:com.atlassian.fugue.Option; Found:io.atlassian.fugue.Option

場景:

狀態:暫無解決方案

原因:jira8結束對com.atlassian.fugue的支持。#getGlobalPermission的返回值由com.atlassian.fugue.Option改為io.atlassian.fugue.Option

狀態:已解決

解決方法:

方案一
方案二

通過lombok提供的val,相當於一個泛型,在編譯時才會尋找變量類型,不需要顯示導入包了 鏈式調用,去除中間環節,注意:需要處理空指針

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM