BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース アプレットの終焉

アプレットの終焉

ブックマーク

原文(投稿日:2021/03/15)へのリンク

Oracleでは、JEP-398でApplet APIを削除としてマークすることとなっている。数年にわたる非推奨通知(JEP-289)後がその境界となる。それは、すべての主要なブラウザが前の2000年以前から提供されているJavaアプレットを強化したNPAPIプラグインのサポートを削除した後となる。

Javaアプレットは元々、ブラウザの性能が低く、アプリケーションを開発するための標準が少なかった時代に、リッチインターネットアプリケーションで活用されてきた。Javaアプレットを有効にする機能は、ブラウザでサンドボックス化されたJavaアプリケーションを実行するためのNetscapeプラグインアプリケーションプログラミングインターフェイス(NPAPI)によって実現された。NPAPIは、Mozillaが組み込まれ(2005)、Chromeが最初にリリースされる(2008)よりずっと前の、1995年にブラウザに最初に登場した。

最新のブラウザ標準以前は、これらのアプレットは、ファイル転送、認証、そして、JavaScriptが処理できなかったその他のさまざまなケースなどのアクティビティによく使用されていた。ブラウザは、メンテナンスをシンプルにするために2015年にNPAPIのサポートを削除し始めた。そして、オラクルが公開したホワイトペーパー「JavaアプレットからプラグインフリーのJavaテクノロジへの移行」と並んで動作していた。

2015年のAPIの変更前はセキュリティがJavaアプレットに関連する関心のあるトピックであった。しかし、多くの組織は、デプロイルールセットなどの管理ツールを使ったり、分離されたCitrix環境でJava/ブラウザーの互換性をロックしたりしてクライアントを防御できた。

以前のJavaバージョンではJavaアプレットが非推奨としてマークされた一方で、APIはそのまま残された。アプレット機能を使用しなくても何らかの方法でそのAPIを活用しているアプリケーションのコンパイルや実行時の問題を回避するためである。この機能により、アイテムが非推奨としてマークされ、削除が遅らされているが、この機能はプラットフォームの最初の20年間はJavaとOpenJDKで標準であった。

InfoQは、OpenJDKのコントリビュータであるStuart Marks氏の腹心であるDeprecator博士と、どのようにしてOpenJDKプロジェクトが@Deprecatedタグを使用してコミュニケーションするかと、何が非推奨となったかについて話をした。

Java 9は、@Deprecatedアノテーションを拡張して、forRemovalという属性を追加した。JEP-398での変更に伴い、Applet APIにはforRemoval=true属性が設定され、APIが実際に削除される前に、コンパイラとツールがより強力な警告を発するようになった。複数の警告ゲートを通るパスによって、コミュニティコードの混乱を回避できます。それは、言語アーキテクトのBrian Goetz氏による2015年のプレゼンテーション「慎重に移行し、何も破壊しない」に沿ったものである。

コアJava APIから削除されたその他の項目は次のとおりである。

この変更がアプリケーションに影響するのか、依存関係に影響するのかが気になるユーザは、コードとその依存関係についての2つのツールの組み合わせを活用できる。

  • 分析ツールであるjdepsは、互換性を危険にさらすAPIを使用する。これは、チームが変更対象で仕様化されていないAPIを使っているかどうかを把握する助けとなる。
  • jdeprscanは、非推奨のアノテーションに対してコードを分析するユーティリティである。保留中の非推奨に応じた調整をしない場合にどのようにリスクにさらされるかを把握できる。

非推奨をSerialization、アプレット指向のSecurityManager、そして、他の側面に適用できるかどうかを尋ねられたとき、Deprecator氏は「ビールを持っていてくれ(その問いに臨む姿勢のこと)」とだけ答え、変更に向けて取り組んでいる可能性があることを示した。

この記事に星をつける

おすすめ度
スタイル

BT