![]() | |
開発元 | Apacheソフトウェア財団 |
---|---|
プログラミング 言語 | Java |
プラットフォーム | Javaプラットフォーム |
種別 | ライブラリ |
ライセンス | Apache License 2.0 |
公式サイト |
commons |
Apache Commons(アパッチ コモンズ)は、Apacheソフトウェア財団の傘下にある再利用可能なJavaコンポーネントをまとめたApacheのトッププロジェクト。Commonsの目的は再利用可能なオープンソースJavaソフトウェアを提供することである。Commonsは三つの部分、proper(プロパー), sandbox(サンドボックス), dormant(活動休止)から構成されている。
Commonsにはjava.langパッケージの機能を拡張するLang、Javaのコレクションフレームワークを拡張するクラス群を集めたCollectionsなどがある。
The Commons Properは役立つJavaコンポーネントを開発維持すること専用に作られている。Common Properはコラボレーションとシェアリングの役割を持っているが、Jakartaコミュニティの至る所からのディベロッパーがJakartaプロジェクトとJakartaユーザによってシェアされるためにプロジェクトで共に活動できる。
Commonディベロッパーはコンポーネントが他のソフトウェアライブラリに最小限に依存することを保証するよう努力する。それで、これらのコンポーネントは容易にデプロイ(配備)できる。加えて、Commonsコンポーネントは可能な限りインタフェースを保つ。それで、(他のJakartaサブプロジェクトを含む)Jakartaユーザはこれらのコンポーネントを、将来変更される心配無く実装することができる。
2006年8月にはこれらはCommons Properでは30以上のプロジェクトになり、5つの一般カテゴリに分類されている。
コンポーネントカテゴリ | 例 |
---|---|
Web関連 | FileUpload, HTTPClient, and Net |
XML関連 | Betwixt, Digester, Jelly, and JXPath |
ユーティリティ | BeanUtils, Configuration, Logging, DBCP, Pool, and Validator |
パッケージ | Codec and Modeler |
ありふれたもの | CLI, Discovery, Lang, and Collections |
( & Goyal 2003)からの表
Properties
クラスのような設定ファイルを弄るクラス群。Object#equals()
, Object#hashCode()
, Object#toString()
, Comparable#compareTo()
メソッドのオーバーライドを支援するクラスなどが存在する。Math
クラスやjava.mathパッケージにはない数学ライブラリを提供。複素数や行列演算、統計学などのライブラリが揃っている。Commons Lang には java.lang を拡張した物が入っている。
Object.equals()
を拡張した物。nullが入っていても比較が可能である。
String s1 = null;
String s2 = "abc";
if(ObjectUtils.equals(s1, s2)) {
System.out.println("equal");
}
Java のデフォルトの Object.toString()
はメンバ変数の内容まで表示してくれないが、リフレクションを使用して、メンバ変数の内容を表示する形で、Object.toString()
を実装する。
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
Apache Commons Collections には、主に、java.util の Collection 関係の拡張した物が入っている。
Java 6 にはクロージャがないが、Predicate
を実装することで、条件を満たす物を探すことができる。以下、リストから、a で始まる物を見つけ出す。
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("ant");
Collection<?> aList = CollectionUtils.select(list, new Predicate() {
public boolean evaluate(Object obj) {
return ((String)obj).startsWith("a");
}
});
The Commons SandboxはJakartaコントリビュータがCommons Properに含まれていないプロジェクトで協業し実験する作業環境である。サンドボックスにあるプロジェクトはCommons Properの推進に関するJakartaのメンバによって支持されており、ディベロッパーのグループは彼らが推進に関して基準に満たすまでサンドボックスを一層よくするために活動している。
Apache CommonsにはCommons Sandboxのプロジェクトの現在のリストが存在する Sandbox page。
Commons Dormantは最近の開発活動が矮小化していることが原因で不活性と宣告されたコンポーネントの集合である。これらのコンポーネントは役に立つかも知れないが、あなた自身でビルドしなければならない。これらのコンポーネントは近い将来リリースされないと思ったほうが良い。
Apache Commonsには利用できるCommons Dormantプロジェクトの現在のリストが存在するDormant page。
Goyal, Vikram (2003年6月25日). “Using the Jakarta Commons, Part I”. 2006年8月13日閲覧。