1. 程式人生 > WINDOWS開發 >jira8.0 api變化--含解決方法

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已移動

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

    • 使用jira-api的ComponentAccessor
    • 外掛一般不應完全取決於jira-coreMaven工件中的任何內容,因為它是非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,相當於一個泛型,在編譯時才會尋找變數型別,不需要顯示匯入包了 鏈式呼叫,去除中間環節,注意:需要處理空指標