Apache Commonsを総ざらってみる。

ということで、現状のコンポーネントをリストアップして、概要を日本語(一部英語のままw)でまとめてみました。今後、個人的に興味のあるものを順にピックアップして、もう少し深く知っておく、という作業をしてみようかな、と思ってます。

まずは、commons-langを掘ってみている。すげええええええの連続です。近々ご紹介しますとも。

Properシリーズ(正式プロジェクト)

コンポーネント mvn 説明 参考
attributes メタデータ属性(docletタグ等)ランタイムAPIjavadocアノテーションを処理する。Java4以前で有用かも。 参考
beanutils Reflection/Introspection APIのラッパー 123
betwixt JavaBeans・XML間の相互マッピングAPI 参考
chain "Chain of Responsibility"パターンの実装。
cli コマンドラインの引数・オプション・オプショングループ・強制オプションなどの処理API
codec 一般的な「エンコード/デコード」のアルゴリズムカプセル化
collections Java Collections Frameworkの拡張・追加クラス群
configuration confやproperties等、さまざまなフォーマットの設定ファイルを読み込むAPI #
daemon Unixデーモンに似た、Invokeの代わりとなるJavaコードによるメカニズムを提供。
dbcp データベース・コネクションプーリングに関するサービスを提供。
dbutils JDBCの関数及びコンポーネント群。
digester XMLで記述された設定ファイルを解析する、XMとJavaオブジェクトのマッピングユーティリティ。
discovery 様々なスキーマを使ってサービス/リファレンスの名称をリソース(クラスファイル群を含む)にマッピングすることにより、リソースの場所を示す為のツール。
el JSP 2.0表現言語のインタプリタ
email Javaからメールを送るシンプルなライブラリ。 #
exec × Javaにおける外部プロセス実行や環境管理を行う。
fileupload 容易且つ堅牢でハイパフォーマンスなファイルアップロード機能をサーブレット及びWebアプリケーションに提供
io I/Oユーティリティ群 #
jci Javaで実装されたJavaコンパイラインタフェース。 参考
jelly XMLベースのスクリプト処理エンジン。
jexl JSTLの表現言語を拡張した表現言語。
jxpath JavaBeansを、XPath文法に基づいて操作するためのユーティリティ。mapやDOMやその他のオブジェクトモデルもサポート。
lang java.langクラスの追加機能を提供する汎用的なユーティリティクラス群。 #
launcher ロスプラットホームな、Javaアプリケーションのランチャー。
logging 様々なログ用APIのラッパークラス群。
math 軽量の数学・統計用コンポーネント
modeler JMX仕様と互換のあるModel MBeansを作成するためのAPI
net ネットワークユーティリティ群。
pool 汎用オブジェクトプール用インターフェース、モジュール式のオブジェクトプールを生成するツールキット、一般目的の為のオブジェクトプール実装。
primitives primitive型のコレクションとユーティリティクラスを提供。
proxy ダイナミックプロキシを生成する為のライブラリ。
scxml SCXML(State Chart XML)エンジンのJava実装。
transaction ファイルアクセスにトランザクション機能 (ACID特性) を提供。 参考
validator XMLファイルの中の妥当性(妥当性メソッド)や妥当性規則を定義する。
vfs ファイルやFTP,SMB,ZIPといったものを、単一の論理ファイルシステム(仮想ファイルシステム)として扱うライブラリ。

Sandboxシリーズ

コンポーネント mvn 説明 参考
compress 圧縮ファイルを扱うためのAPI
csv × CSVの読み書きAPI
finder × UNIXのfindコマンドのような機能を提供。
functor × 関数をオブジェクトとして扱うライブラリ。
i18n スローする例外や表示するエラー/成功メッセージを特定の地域に合わせてローカライズするライブラリ。
id × 識別子(ID)を生成するライブラリ。
javaflow × Continuation implementation to capture the state of the application.
jnet × JNet allows to use dynamically register url stream handlers through the java.net API.
monitoring × Monitoring provides a simple, lightweight toolkit to instrument java application monitoring capabilities, including performances and thread concurrency.
nabla × Nabla provides automatic differentiation classes that can generate derivative of any function implemented in the Java language.
OpenPGP × Interface to signing and verifying data using OpenPGP.
performance × A small framework for microbenchmark clients, with implementations for Commons DBCP and Pool.
pipeline × Provides a set of pipeline utilities designed around work queues that run in parallel to sequentially process data objects data objects.

Dormantシリーズ

コンポーネント mvn 説明 参考
cache × オブジェクトキャッシュ機能を提供する。
clazz × Clazz focuses on introspection and class manipulation.
contract × This component makes all the nice features available to the java programming language that come along with contract based programming.
convert × provide a single library dedicated to the task of converting an object of one type to another.
events × additional classes for firing and handling events. It focusses on the Java Collections Framework, providing decorators to other collections that fire events.
feedparser × Javaによる各種バージョンの RSS/Atom を同じように扱えるパーサ。
jjar × Jakarta JAR Archive Repository
latka QAテスト/承認テスト/リグレッション・テストの自動化の為のHTTP機能テストスイート。
mapper × thin abstraction layer around a project's chosen data mapping technology (a.k.a. DAO pattern).
messenger Web層でJMSが機能する為のフレームワーク
resources java.util.Localeで作成される国際化メッセージ文字列やメッセージキーを規定したり調べたりする軽量のフレームワーク
scaffold × Webアプリケーション構築ツールキット。
threadpool オブジェクトプール内のスレッドに処理を非同期的にディスパッチする為のコンポーネント
workflow × ワークフロー管理システムを構築するためのフレームワーク
xmlio × Simple and fast importer for XML configuration or import files.

Commonsプロジェクト以外にホスティングされているもの

コンポーネント mvn 説明 参考
AltRMI × AltRMI is a from-scratch replacement for RMI. It has a number of different features that make it easier to use. It tries as far as possible to be transparent in use.
Cactus × Cactus is a simple test framework for unit testing server-side java code (Servlets, EJBs, Tag Libs, Filters, ...). The intent of Cactus is to lower the cost of writing tests for server-side code.
HiveMind × HiveMind is a services and configuration microkernel. HiveMind allows you to create your application using a service oriented architecture.
httpclient クライアント側でHTTPプロトコルを操作するフレームワーク
naming The Naming subproject will contain common JNDI code along with various JNDI providers.

Maven Reposで見つけた「なんぞこれ」

  • commons-grafolia
  • commons-grant
  • commons-graph
  • commons-http
  • commons-jdbc2pool
  • commons-jux
  • commons-services
  • commons-sql
  • commons-test
  • commons-util: 分割された上、commons-lang等、あちこちに統合されたっぽい。
  • commons-xo
  • commons-build-plugin
  • commons-parent
  • commons-sandbox-parent
  • commons-skin: Mavenのsiteゴールで生成されるページのcssやら画像ファイルが入ってる。