2つのJEPがJDK12のproposalに追加とかOpenJDKのLTSとか

サボってる間にもいろいろあったのでまとめておきます。

2つのJEPがJDK12のproposalに追加

新たにJEPがふたつ追加されました。
JEP 340: One AArch64 Port, Not Two
JEP 341: Default CDS Archives

JDK12のリリーススケジュールが正式に発表

最初のProposalではRC Phaseは1/31だったのですが、Rampdown Phase 2が2週間しかないのは短すぎないかという指摘があって、修正されたものが正式に発表されました。

2018/12/13 Rampdown Phase One (fork from main line)
2019/01/17 Rampdown Phase Two
2019/02/07 Release-Candidate Phase
2019/03/19 General Availability

JDK 12

Microsoft、Azul SystemsがAzure上でのLTSに言及

Azureで利用するためであればZulu Enterpriseのビルドを無償で提供すると、MicrosoftとAzulが発表しました。
Microsoft and Azul Systems bring free Java LTS support to Azure | Blog | Microsoft Azure

Red HatのOpenJDKサポート方針について

Red Hatは2023年までOpenJDK 8を顧客向けにサポートすることを表明していましたが、この際にUpstream firstポリシーに基づいて、OpenJDK8のクリティカルなバグやセキュリティの修正について行われ続けるということをブログに書いています。
The future of Java and OpenJDK updates without Oracle support - RHD Blog

AdoptOpenJDKでOpenJDK11が正式公開

AdoptOpenJDKでOpenJDK 11のビルドが正式にダウンロードできるようになっています。
https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot


また、MacではHomebrew-caskを使ってOpenJDK 11がインストールできるようになったようです。

$ brew cask install adoptopenjdk

JDK12のeaにString.align、String.indentが追加

Raw String Litearals(RSL)で便利なメソッドとしてalignやindentが追加されています。
特にalignは、RSLを使ったコードをみやすくインデントしたときに追加される余分な空白をなんとかするために便利です。
RSLの最中にインデントするとこんな感じで余分な空白が入ります。

jshell> var s = `
   ...>         test
   ...>         test
   ...>         `
s ==> "\n        test\n        test\n        "


これを、先頭に入るべき空白の数を指定して調整することができます。

jshell> var s = `
   ...>         test
   ...>         test
   ...>         `.align(0)
s ==> "test\ntest\n"


元はこれを言語仕様として対処しようとしていたのですが、やはり落とし所が難しかったようで、メソッドとしての実装になりました。