iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0
Software Development

每天罵爆一隻 Kafka Pull Request系列 第 26

KAFKA-17738 upgrade base image from jdk8 to jdk11

  • 分享至 

  • xImage
  •  

https://github.com/apache/kafka/pull/17432

背景故事

時光飛逝,2014年JDK8釋出到現在也十個年頭,作為Java生態系中的一代宗師,JDK8為我們鋪上走向函式的康莊大道,也為我們時間管理大師留下各種好用的工具、甚至也允許我們懶惰的工程師使用var的關鍵字,更不用說那些各種基於StringOptionalFIles等等新增的各種好用的東西。然而十年說長不長說短不短,也是時候也應該是時候,要跟JDK8說再見了

Kafka要怎麼跟JDK8說再見呢?大概分成幾個部分:

首先是專案建置的部分,我們需要把release改成Java 11,這是一個神奇的參數,他不只會檢查專案中使用的Java語法是否合乎範圍,同時也會告訴編譯器所產生的結果是以哪個版本的Java為主。所以透過這個修改我們就可以開始使用Java 11的語法,同時使用者也需要以支援Java11的環境來跑kafka了。除此之外,我們也必須要把一些套件升級到Java 11支援的範圍裡,畢竟有些套件可能都還停留在Java 8的世界裡面。

再來則是測試的調整,在系統測試我們要把Java 8改成Java 11,如此我們才可以運行現在的程式碼來跑系統測試,否則我們自己就會踩到自己的腳,升級完後會遇到另一個問題,舊版的Kafka其實不能跑在Java 11裡面,所以我們還必須把舊版的Kafka從系統測試中移除,雖然很難過因為其實我們也準備移除對舊版的相容性了。

最後最後則是文件和程式碼的整理,累積了這麼多年的Java 8程式碼,專案裡面一定有一大堆髒髒舊舊的東西需要整理,同時我們也要更新文件明確表示Java 8已經不支援了,也請不要再用Java8來做開發與編譯。

大家看到現在是不是覺得好像很多題目可以做?沒做,正值大整理的Kafka 4.0,社群上有許多整理的題目可以做,所以如果你對參與Kafka貢獻有興趣的話,這就會是一個不錯的開始,也歡迎看看下方的廣告來與大家一起湊熱鬧。

廣告

歡迎訂閱全臺最鬆散的開源社群源來適你,上面不定期會有各種開源的廢文。也歡迎參加全臺最鬆散的開源討論頻道,上面有一群網友一起在刷開源技術

題外話

大家最喜歡Java 11哪些語法呢?我最喜歡的就是var這個用法,熟知Scala的人應該已經很習慣了,Java 11允許大家寫下這種風格的程式碼:

var list = new ArrayList<String>();

相比以前:

List<String> list = new ArrayList<>();

是不是覺得簡化後有看起來更舒服一點?

另外各種方便的結構包裝,例如:

List<String> list = List.of("a", "b", "c");

阿,總之迫不及待讓Kafka可以享受到Java 11的好用語法了!


上一篇
KAFKA-17714 Fix StorageTool.scala to compile under Scala 2.12
下一篇
KAFKA-17686 AsyncKafkaConsumer.offsetsForTimes() fails with NullPointerException
系列文
每天罵爆一隻 Kafka Pull Request30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言