原文はこちら。
The original article was written by David Delabassee (DevRel – Java Platform Group at Oracle).
https://inside.java/2023/02/15/quality-heads-up/
OpenJDK Quality Groupは、リリースの全体的な品質向上の手段としてOpenJDK Early Accessビルドを使ってのFOSSプロジェクトのテストを推進しています。
Quality Outreach
https://wiki.openjdk.java.net/display/quality/Quality+Outreach
このHeads upは、関係するプロジェクトに送られる定期的なコミュニケーションの一部です。
JDK 20 Release Candidate and Deprecation
https://mail.openjdk.org/pipermail/quality-discuss/2023-February/001111.html
このプログラムの詳細と参加方法については、上記wikiをご覧ください。
JDK 20 – Deprecate URL Public Constructors
java.net.URL
クラスはJava SE 1.0から存在しますが、このクラスがRFC2396のエスケープ機構に従って任意のURLコンポーネントをエンコード、もしくはデコードすることはありません。
URL (Java SE 19 & JDK 19)
https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/net/URL.html
RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax
https://www.ietf.org/rfc/rfc2396.txt
URL呼び出し前にエスケープが必要な場合のフィールドのエンコード、およびURLから返されたエスケープ済みのフィールドのデコードは呼び出し側の責任です。このため、呼び出すコードが考慮していない場合の潜在的な脆弱性を含め、使い勝手の問題が多く発生しています。
Java SE 1.4ではjava.net.URI
クラスが追加され、java.net.URL
の欠点のいくつかを緩和しています。また、URIからURLを作成するためのメソッドも提供されています。
URI (Java SE 19 & JDK 19)
https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/net/URI.html
JDK 20では、java.net.URL
のすべてのパブリックコンストラクタが非推奨になります。これは強い警告を与え、開発者がこれらを使用しないようにするためです。URL を作成するには、代わりにURI::toURL
を使用してください。file:
ベースのURLを作成するには、URI::toURL
の前にPath::toURI
を使用する必要があります。
URI::toURL
https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/net/URI.html#toURL()
Path::toURI
https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/nio/file/Path.html#toUri()
詳細は、JDK-8294241をチェックしてください。
[JDK-8294241] Deprecate URL public constructors
https://bugs.openjdk.org/browse/JDK-8294241