#navi_header|Groovy| Gradle 1.4 - 1.5で使われているJavaライブラリの中から、「へ~、こんなのあったんだ~」というのを駆け足で紹介していきます。自分たちのJava開発でも活用出来そうです。(Gradleのlib/およびlib/pluginsの中からjarファイル名を頼りに調べたもので、具体的にGradleのどの機能で使われているかまでは調べてないです。) * JVMの外へのアクセス(C/C++コードの呼び出し, SSH2実装, CIFSアクセスライブラリ) ** Java Native Access (JNA) Pythonのctypesのように、JNIよりもシームレスにネイティブライブラリ(.dll, .so)のコードを呼び出せるライブラリ。 - twall/jna - GitHub -- https://github.com/twall/jna - JNIより簡単にJavaとC/C++をつなぐ「JNA」とは(1/4)-@IT -- JNIより簡単にJavaとC/C++をつなぐ「JNA」とは(1/4)-@IT ** adammurdoch/native-platform 予めよく使われるプラットフォーム依存のネイティブAPIを、Javaでラップしてくれるように調整済みのライブラリのようです。 - https://github.com/adammurdoch/native-platform ** JSch - Java Secure Channel SSH2のJava実装。 - http://www.jcraft.com/jsch/ ** JCIFS JavaによるCIFS/SMBプロトコル処理系 - http://jcifs.samba.org/ * リフレクション、シリアライズ関連 ** kryo - Fast, efficient Java serialization and cloning - Google Project Hosting グラフ構造のオブジェクトを効率的に、素早くシリアライズするためのJavaライブラリ。 - https://code.google.com/p/kryo/ ** Objenesis 割りと他のプロダクトでも見かけたことがありますが、serializationやaop/mockライブラリなどで使われている、動的にJavaのインスタンスを生成する処理をサポートしてくれるライブラリのようです。コンテナフレームワークでも使われているようです。 - http://objenesis.googlecode.com/svn/docs/index.html ** reflectasm - High performance Java reflection - Google Project Hosting Javaのリフレクション処理によるフィールド・メソッド・コンストラクタへのアクセスを、動的にコード生成することで高速化しているようです(何を言ってるのか自分も理解できてませんが・・・)。 - https://code.google.com/p/reflectasm/ * テキスト処理系(HTML/XML/XPath/XSLT/JSON/YAML) ** NekoHTML JavaによるHTMLパーサ - http://nekohtml.sourceforge.net/ ** jatl - JATL : Java Anti-Template Language - Google Project Hosting DSLスタイルでXHTML/XMLを生成するツールキット - https://code.google.com/p/jatl/ ** dom4j - Introduction JavaでのXPath/XSLT処理のライブラリ。 - http://dom4j.sourceforge.net/ - dom4jでxmlを読み込む -- http://www.confrage.com/java/xml/read_dom4j/read_dom4j.html ** jaxen これもJavaでのXPath処理ライブラリみたいです。dom4jと組み合わせても使えるみたいです。 - http://jaxen.codehaus.org/ ** google-gson - A Java library to convert JSON to Java objects and vice-versa - Google Project Hosting Java実装のJSON処理系 - https://code.google.com/p/google-gson/ ** snakeyaml - YAML parser and emitter for Java - Google Project Hosting Java実装のYAML処理系 - https://code.google.com/p/snakeyaml/ * その他 ** BeanShell JavaのBeanShellスクリプト言語の実装。 - http://www.beanshell.org/ ** JCommander コマンドライン引数を処理するためのライブラリ。"-xx"とか"--yy=xxxxx"などを、アノテーションを活用してJavaBeanに自動マッピングしてくれる機能などがある。 - http://jcommander.org/ ** Jansi ANSIエスケープシーケンスの出力をサポートしてくれるライブラリ。公式Webサイトのデモ画像を見れば分かる通り、エスケープシーケンスの出力による多彩なコンソール出力が可能になりそう。 - http://jansi.fusesource.org/ - java - how use jansi laibrary - Stack Overflow -- http://stackoverflow.com/questions/5778946/how-use-jansi-laibrary ** bndlib : Bnd OSGiフレームワークで、外部ライブラリの依存関係やインポート・エクスポートするパッケージなどをメタ情報で柔軟に設定するためのフレームワーク・・・っぽいです。多分。 - http://www.aqute.biz/Bnd/Bnd ** jarjar - Embedding Java libraries since 2004 - Google Project Hosting 依存jarを集約して、一本のjarにまとめ上げるためのライブラリ。fatjarとかその系列かも。 - https://code.google.com/p/jarjar/ ** stephenc/jcip-annotations 日本語で読まれた人もいると思いますが、"Java Concurrency in Practice"(邦題「Java並行処理プログラミング ―その「基盤」と「最新API」を究める―」)を略してJCIPと呼んでいるらしく、その書籍中で、メソッドやクラスにおけるマルチスレッドプログラミング上の特性をアノテーションで表現する例が載っています。それを実際に実装してみたライブラリのようです。 - https://github.com/stephenc/jcip-annotations - Concurrency is hot, try the JCIP annotations | JetBrains Zone -- http://jetbrains.dzone.com/tips/concurrency-hot-try-jcip ** minlog Java実装の超シンプル・効率的なロギングライブラリのようです。slf4jなど外部ログ仕様と連携するわけではなく、完全に独自インターフェイスでコンパクト・高速・効率化を目指したようです。 - https://code.google.com/p/minlog/ #navi_footer|Groovy|