リポジトリ、JSR-294との統合

モジュールが信頼できる名前やバージョンのメタデータを持つことによる利点は、ライブラリをアプリケーション間で共有できることだ。Javaは特に、細分化された膨大な数のオープンソースライブラリこそが強みなので、それらを共有できることはアプリケーションのサイズや占有するメモリのサイズを小さくできる、という点で非常に有効だ。 そうした、共有モジュールを格納しておく場所の事をリポジトリと呼ぶ。

リポジトリ

現時点では、リポジトリは以下のようなものが考えられている。

  • グローバルリポジトリ - 複数のJavaアプリケーション間で共有するためのリポジトリ。多くの場合、このリポジトリへのモジュールインストール/アンインストールには管理者権限が必要となる
  • アプリケーションリポジトリ - アプリケーション固有のリポジトリ。複数のモジュールから構成されるアプリケーションを作成したときに有効だ。コマンドラインオプションで、リポジトリの場所を指定できるようにする
  • URLリポジトリ - モジュールを外部に公開しているサーバから、自動的にモジュールをダウンロードしてローカルにキャッシュし使用する

筆者が感心したのは、URLリポジトリから実行時にモジュールを取得できる点だ。これなら、アプリケーションにライブラリJARを添付する必要が一切なくなり、配布するサイズを非常に小さくできる。ダウンロードサイズが非常に重要となる、アプレットやJavaWebStartにとっては待望の機能だと言える。しかも、これが真に「オンデマンド」で行われるようになれば(クラスを初めてロードするとき、など)、アプリケーションの起動時間も非常に短くなることが期待される。