Gradle 1.4 - 1.5で使われているJavaライブラリの中から、「へ~、こんなのあったんだ~」というのを駆け足で紹介していきます。自分たちのJava開発でも活用出来そうです。(Gradleのlib/およびlib/pluginsの中からjarファイル名を頼りに調べたもので、具体的にGradleのどの機能で使われているかまでは調べてないです。)
Pythonのctypesのように、JNIよりもシームレスにネイティブライブラリ(.dll, .so)のコードを呼び出せるライブラリ。
予めよく使われるプラットフォーム依存のネイティブAPIを、Javaでラップしてくれるように調整済みのライブラリのようです。
SSH2のJava実装。
JavaによるCIFS/SMBプロトコル処理系
グラフ構造のオブジェクトを効率的に、素早くシリアライズするためのJavaライブラリ。
割りと他のプロダクトでも見かけたことがありますが、serializationやaop/mockライブラリなどで使われている、動的にJavaのインスタンスを生成する処理をサポートしてくれるライブラリのようです。コンテナフレームワークでも使われているようです。
Javaのリフレクション処理によるフィールド・メソッド・コンストラクタへのアクセスを、動的にコード生成することで高速化しているようです(何を言ってるのか自分も理解できてませんが・・・)。
JavaによるHTMLパーサ
DSLスタイルでXHTML/XMLを生成するツールキット
JavaでのXPath/XSLT処理のライブラリ。
これもJavaでのXPath処理ライブラリみたいです。dom4jと組み合わせても使えるみたいです。
Java実装のJSON処理系
Java実装のYAML処理系
JavaのBeanShellスクリプト言語の実装。
コマンドライン引数を処理するためのライブラリ。"-xx"とか"--yy=xxxxx"などを、アノテーションを活用してJavaBeanに自動マッピングしてくれる機能などがある。
ANSIエスケープシーケンスの出力をサポートしてくれるライブラリ。公式Webサイトのデモ画像を見れば分かる通り、エスケープシーケンスの出力による多彩なコンソール出力が可能になりそう。
OSGiフレームワークで、外部ライブラリの依存関係やインポート・エクスポートするパッケージなどをメタ情報で柔軟に設定するためのフレームワーク・・・っぽいです。多分。
依存jarを集約して、一本のjarにまとめ上げるためのライブラリ。fatjarとかその系列かも。
日本語で読まれた人もいると思いますが、"Java Concurrency in Practice"(邦題「Java並行処理プログラミング ―その「基盤」と「最新API」を究める―」)を略してJCIPと呼んでいるらしく、その書籍中で、メソッドやクラスにおけるマルチスレッドプログラミング上の特性をアノテーションで表現する例が載っています。それを実際に実装してみたライブラリのようです。
Java実装の超シンプル・効率的なロギングライブラリのようです。slf4jなど外部ログ仕様と連携するわけではなく、完全に独自インターフェイスでコンパクト・高速・効率化を目指したようです。