» www.Giftbox.Az - Bir birindən gözəl hədiyyə satışı
ウィキペディアランダム
毎日カテゴリ
共有: WhatsappFacebookTwitterVK

Apache Commons

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

Apache Commons
開発元 Apacheソフトウェア財団
リポジトリ
  • svn.apache.org/repos/asf/commons/
プログラミング
言語
Java
プラットフォーム Javaプラットフォーム
種別 ライブラリ
ライセンス Apache License 2.0
公式サイト commons.apache.org
(テンプレートを表示)

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)からの表

サブプロジェクト

  • BCEL - Javaバイトコードを扱うライブラリ。
  • BeanUtils - Java Beansをサポート。
  • BSF
  • Chain - GoFデザインパターンの一つ、Chain of Responsibility パターンをサポート。
  • CLI
  • Codec
  • Collections - java.utilパッケージにある(コレクションフレームワーク)を拡張するクラス群。
  • Compress - tar, ZIP, bzip2をサポート。
  • Configuration - Propertiesクラスのような設定ファイルを弄るクラス群。
  • CSV
  • Daemon
  • DBCP - 関係データベースの(コネクションプーリング)をサポート。
  • DBUtils - JDBCをサポートする。
  • Digester
  • Discovery
  • EL
  • Email - メールライブラリ
  • Exec
  • FileUpload - Java Servlet/JSPでのファイルアップロードをサポート。
  • IO - java.ioパッケージをサポート。
  • JCI
  • Jelly
  • Jexl
  • JXPath
  • Lang - java.langパッケージを拡張する。StringUtilsほか、Object#equals(), Object#hashCode(), Object#toString(), Comparable#compareTo()メソッドオーバーライドを支援するクラスなどが存在する。
  • Launcher
  • Logging - ひとつのプログラムで(Java Logging API)((java.util.logging)パッケージ)や(Jakarta Log4J)を併用し、簡単に複数のロギングAPIを切り替えるときに便利なAPI。
  • Math - Mathクラスやjava.mathパッケージにはない数学ライブラリを提供。複素数行列演算、統計学などのライブラリが揃っている。
  • Modeler
  • Net - java.netパッケージを拡張する。FTPなどのプロトコルを扱うことができる。
  • Pool - Javaでの(オブジェクトプーリング)をサポート。
  • Primitives
  • Proxy
  • SCXML
  • Validator
  • VFS
  • Weaver

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日閲覧。

外部リンク

  • Apache Commons
ウィキペディア、ウィキ、本、library、論文、読んだ、ダウンロード、自由、無料ダウンロード、mp3、video、mp4、3gp、 jpg、jpeg、gif、png、画像、音楽、歌、映画、本、ゲーム、ゲーム。