GoogleはApp Engineの10月のアップデートにJava 7のサポートのプレビュー版を含めた。現時点では、開発マシンのみで動作する。Googleは正式サポートの次期を明確にしていない。
将来のリリースでJava 7の新しい機能のいくつかを提供し、App EngineのJavaランタイムでJava 7を正式にサポートするつもりです。開発者のみなさんにはそれまでにアプリケーションがJava 7と最新のApp Engine Java SDKで動作することを確かめることをお勧めします。
GoogleのJava 7のサポートは部分的で、メソッドハンドルやInvokeDynamicバイトコード命令、そして現時点では Java 7の新しいクラスがすべて含まれていない。しかし、プロジェクトCoinから生まれた新しい言語の特徴はサポートする。
- 文字列型を使ってswitch文で分岐ができる
- 二進数をリテラルで表記できる。数値のリテラルにアンダースコアが付けられる
- 例外処理で複数のcatchを書き、正確に再スローできる
- ジェネリック型のインスタンスに対する型推論の改善
- try-with-resourcesステートメント
- 可変長引数メソッドの簡易化
Googleは特定のJARファイルのクラスローディングを優先するように指定できる機能を試験的にサポートした。これによって、クラス名の衝突を解決できる。下記のようにXMLの<class-loader-config>要素に設定をすればいい。
<class-loader-config>
<priority-specifier filename="mailapi.jar"/>
</class-loader-config>
<priority-specifier>要素の順自体は関係ない。複数のJARを優先に指定した場合は元のローディング順になる。
すでにJava 7をサポートしているPaaSベンダはCloudBees、Jelastic、VMwareのCloud Foundry。