Oracleがマイナーリリース向けの新機能を含んだJava 7 update 40をリリースした。これには、JVMモニタリングツールのMission Control、Java AppletsとWeb StartアプリケーションのためのRule Sets、ならびに多数のバグ修正が含まれている。
Mission Control
Java Mission Control (JMC) はプロダクションのためのツールスイートであり、そのルーツはJRockitのJVMツールにある。このツールの目的は、開発環境とプロダクション環境の両方で使うのに適した、控え目なJavaのモニタリングおよび管理を提供することにある。JMCはJavaのOracle Binary Code Licenseのもと利用できる。このライセンスにより、開発とテスト中はフリーでJMCを使えるが、プロダクション利用には別の(有償)ライセンスが必要になる。
このツールスイートはJava Process Browser、JMX Console、Flight Recorderという3つのコンポーネントで構成されている。
Java Process Browser: ローカルおよびリモートで動いているJavaアプリケーションをリストし接続することを可能にする。ローカルで動いているJavaプロセスはもちろんのこと、Java Discovery Protocol (JDP) を使ってリモートのJavaプロセスを自動的に検出することができる。
JMX Console: JMXインターフェイスを通してJDKを管理、モニタリングするのに使われる。これはライブセット、ヒープ使用、CPU負荷のほか、MBeansで公開され、MBeanサーバで登録された属性などの情報を提供する。
Java Flight Recorder: OS層、JVM、Javaアプリケーションからのイベントを収集する方法を提供する。収集されるイベントには、スリープ、ウェイト、ロック競合、I/O、GC、メソッドプロファイリングなどのスレッドレイテンシイベントが含まれる。Oracleの見積もりによれば、Flight Recorder実行中のパフォーマンスオーバーヘッドはたいていのアプリケーションで2%ほどだそうだ。
最初からHotSpot JDKによるMission Controlが含まれていることは、JRockitとHotSpotの統合(OracleがSun Microsystemsを買収した直後に最初に発表した長期戦略)を示している。これが意味することは、HotSpot JDKの7u40リリースでは、HotSpotから利用できる情報はJRockitのものと等価であるということだ。
これはMission Controlに対するこの2年で最初のアップデートでもあり、次のような新機能も導入されている。
- JVM Browserは利用可能なサーバサイドサービスのためのサブノートを備え、サービスの状態を表示することができるようになった。たとえばFlight Recorderサービスの場合、展開すると、そのサービスでどんなレコーディングが動いているか表示するなど。
- Eclipse 3.8/4.2のサポート: Mission ControlクライアントはEclipse 3.8.2/4.2で動作するよう作られている。だが、Eclipse 4.3.x以降にはインストールできない(これは今度の5.3.0リリースで修正されるだろう)。
- MBean Browserの改善: 属性ツリーにセット可能な属性値を直接編集できるようになった。ノーティフィケーションタブのノーティフィケーションは2つ以上展開できるようになった。
詳しく情報はJMCのリリースノートに書かれており、Oracleはブログで活発に説明している。
Deployment Rule Sets
Java AppletsやWeb Startアプリケーションを使っている企業にとって、アプリケーションを実行するためにセキュリティプロンプトやユーザによる許可がますます増えることは苦痛になっている。Deployment Rule Set機能を使うことで、企業は既知のアプリケーションのホワイトリストを設定できるようになる。ホワイトリストにあるアプリケーションは、多くのセキュリティプロンプトなしに動かすことができる。ただし、以下のプロンプトは抑制されない。
- HTTPSセキュリティ警告
- 接続するためにユーザがクレデンシャル情報を提供する必要のある認証ダイアログ
- ショートカットや関連付けを生成するようなアクションをしようとする、署名のないJava Web Startアプリケーションのためのセキュリティ警告
デプロイメントのためのルールはXMLファイルで定義され、署名付きのJARファイルにパッケージングされる。
Deployment Rule Set機能には(Java SE 6 Update 10以降で利用可能な)新しいJavaプラグインが必要になる。デプロイメントルールセットがインストールされていると、すべてのRIAで古いプラグインの利用がブロックされる。
この機能は公開アプリケーションに悪用されやすく、Deployment Rule Setのガイドには次のように書かれている。
Deployment Rule Set機能はオプションであり、コントロールされた環境である組織内でのみ使われるべきです。ルールセットを含んだJARファイルが配布されたり公開された場合には、ルールセットを署名するのに使われた証明書はブラックリストに入れられ、Javaでブロックされることになるでしょう。
マイナーな変更とバグ修正
Linux ARM v7におけるハードフロートABIサポートを含む多くのマイナー変更と、大量のバグ修正(全部で621件)が含まれている。またリリースノートには、Retinaスクリーンで正しくコンテンツ表示できるようになったと、はっきり述べられている。