Apache Commons

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Laftp1 (会話 | 投稿記録) による 2021年11月3日 (水) 13:06個人設定で未設定ならUTC)時点の版 (インフォボックスを追加)であり、現在の版とは大きく異なる場合があります。

Apache Commons
開発元 Apacheソフトウェア財団
リポジトリ ウィキデータを編集
プログラミング
言語
Java
プラットフォーム Javaプラットフォーム
種別 ライブラリ
ライセンス Apache License 2.0
公式サイト commons.apache.org ウィキデータを編集
テンプレートを表示

Apache Commons(アパッチ コモンズ)は、Apacheソフトウェア財団の傘下にある再利用可能なJavaコンポーネントをまとめたApacheのトッププロジェクト。Commonsの目的は再利用可能なオープンソースJavaソフトウェアを提供することである。Commonsは三つの部分、proper(プロパー), sandbox(サンドボックス), dormant(活動休止)から構成されている。

Commonsにはjava.langパッケージの機能を拡張するLang、Javaのコレクションフレームワークを拡張するクラス群を集めたCollectionsなどがある。

Commons Proper

The Commons Properは役立つJavaコンポーネントを開発維持すること専用に作られている。Common Properはコラボレーションシェアリングの役割を持っているが、Jakartaコミュニティの至る所からのディベロッパーがJakartaプロジェクトとJakartaユーザによってシェアされるためにプロジェクトで共に活動できる。

Commonディベロッパーはコンポーネントが他のソフトウェアライブラリに最小限に依存することを保証するよう努力する。それで、これらのコンポーネントは容易にデプロイ(配備)できる。加えて、Commonsコンポーネントは可能な限りインタフェースを保つ。それで、(他のJakartaサブプロジェクトを含む)Jakartaユーザはこれらのコンポーネントを、将来変更される心配無く実装することができる。

2006年8月にはこれらはCommons Properでは30以上のプロジェクトになり、5つの一般カテゴリに分類されている。

Commons Proper の一般カテゴリ一覧
コンポーネントカテゴリ
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)からの表

サブプロジェクト

Commons Lang

Commons Lang には java.lang を拡張した物が入っている。

例1

Object.equals() を拡張した物。nullが入っていても比較が可能である。

String s1 = null;
String s2 = "abc";
if(ObjectUtils.equals(s1, s2)) {
    System.out.println("equal");
}

例2

Java のデフォルトの Object.toString() はメンバ変数の内容まで表示してくれないが、リフレクションを使用して、メンバ変数の内容を表示する形で、Object.toString() を実装する。

public String toString() {
    return ToStringBuilder.reflectionToString(this);
}

Commons Collections

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");
    }
});

Commons Sandbox

The Commons SandboxはJakartaコントリビュータがCommons Properに含まれていないプロジェクトで協業し実験する作業環境である。サンドボックスにあるプロジェクトはCommons Properの推進に関するJakartaのメンバによって支持されており、ディベロッパーのグループは彼らが推進に関して基準に満たすまでサンドボックスを一層よくするために活動している。

Apache CommonsにはCommons Sandboxのプロジェクトの現在のリストが存在する Sandbox page

Commons Dormant

Commons Dormantは最近の開発活動が矮小化していることが原因で不活性と宣告されたコンポーネントの集合である。これらのコンポーネントは役に立つかも知れないが、あなた自身でビルドしなければならない。これらのコンポーネントは近い将来リリースされないと思ったほうが良い。

Apache Commonsには利用できるCommons Dormantプロジェクトの現在のリストが存在するDormant page

関連項目

  • Google Guava - Googleによって開発されているオープンソースのJavaユーティリティライブラリ群。後方互換性の確保を担保しているApache Commonsと違い、JDK 1.6以降を対象として開発されている。

参考

Goyal, Vikram (2003年6月25日). “Using the Jakarta Commons, Part I”. 2006年8月13日閲覧。

外部リンク