Apache Commons
Logo von Apache

Apache Commons ist ein Projekt der Apache Software Foundation mit der Zielstellung, allgemein verwendbare Klassenbibliotheken für die Programmiersprache Java zu erstellen. Da die Bibliotheken unter der Apache License Version 2.0 stehen, können sie auch in kommerziellen Projekten verwendet werden. Die Schwerpunkte liegen dabei auf der Unabhängigkeit von anderen Bibliotheken und für Server relevante Funktionen. Vor einer Umstrukturierung der Stiftung wurden die Bibliotheken unter dem Namen Jakarta Commons entwickelt.

Inhaltsverzeichnis

Strukturierung

Da das Projekt aus sehr vielen einzelnen Bibliotheken besteht, die sich auf ein sehr begrenztes Aufgabenfeld beschränken, werden diese projektintern nach ihrem Reifezustand unterschieden. Bibliotheken, die den Status Proper (engl. wirklich) erreicht haben, sind offizieller Bestandteil der Commons. Projekte, die bereits funktionsfähig sind, aber noch nicht die nötigen Kriterien erfüllen, werden in der Sandbox (engl. Sandkasten) geführt. Alle anderen Bibliotheken, die sich noch im Entwurf befinden oder deren Betreuung nicht sichergestellt ist, werden als Dormant (engl. schlummernd) kategorisiert.

Folgende offizielle (proper) Komponenten enthält die Apache Commons:[1]

Kategorie Komponenten
Web FileUpload, Net, EL, Email, Jexl
XML Betwixt, Digester, Jelly, JXPath
Utilities BeanUtils, Pool, Validator, Daemon, Discovery, Exec, Launcher, JCI, Jelly, Modeler, SCXML, Chain
Konvertierungen Codec, Compress
Java API Erweiterungen Lang, Collections, IO, Logging, Configuration, DBCP, DbUtils, Math, Primitives, Proxy, Validator, VFS, Attributes, CLI, Discovery, Transaction

Allgemeine Bibliotheken

Zu den wichtigsten Bibliotheken gehört „Commons Collections“, welche das Java Collections Framework um viele hilfreiche Klassen zur Verwaltung von Datenbeständen erweitert. Das letzte Release ist aber von 2008 und unterstützt noch keine Java Generics (Java 5 und später), was die Verwendbarkeit erheblich einschränkt. Die Bibliothek „Commons Lang“ erweitert die Grundfunktionen des Paketes java.lang, in welchem sich die grundlegenden Klassen von Java befinden, um viele nützliche Klassen und deren Methoden. Mit Hilfe von „Commons Logging“ wird eine einheitliche API für die verschiedenen Logging-Klassenbibliotheken, wie beispielsweise log4j oder java.util.logging geschaffen. Weitere allgemeine Erweiterungen der Standardbibliotheken von Java sind unter anderen:

  • Commons BeanUtils
  • Commons CLI
  • Commons Configuration
  • Commons Math

Bibliotheken für Webanwendungen

Einige der Bibliotheken sind speziell auf Webanwendungen zugeschnitten, um es Entwicklern zu erleichtern, häufig wiederkehrende Aufgaben mit geringen Aufwand umzusetzen. So stellt Commons Net viele bekannte Protokolle wie FTP, POP3 oder Telnet zur Verfügung, während Commons FileUpload für Servlets und Webanwendungen einen einfachen Mechanismus für das Hochladen von Dateien bereitstellt. Die folgende Auflistung zeigt einige weitere für Webanwendungen interessante Bibliotheken:

  • Commons IO
  • Commons Transaction

Nicht mehr dazu gehört Commons HttpClient, da dieser Bestandteil bereits im Jahr 2004 an das übergeordnete Jakarta-Projekt übergeben wurde und seit 2007 sogar zu einem eigenständigen Top Level Projekt aufstieg.

Bibliotheken für XML-Verarbeitung

Da auf Servern häufig Java Beans verwendet werden, bietet Commons Betwixt eine, in beiden Richtungen mögliche, Abbildung von XML-Strukturen auf Java Beans. Commons Digester ist auf die Initialisierung von Java Objekten aus XML-Daten spezialisiert, während Commons Jelly die Ausführung einer XML-basierten Skriptsprache ermöglicht.

Bibliotheken für Datenbankzugriffe

Apache Commons DB-Utils bietet Erweiterungen und Vereinfachungen für den Zugriff auf Datenbanken mittels Java Database Connectivity (JDBC). Beispielsweise ermöglicht es die automatische Umwandlung der aus der Datenbank gelieferten Daten in JavaBeans oder schließt die Datenbankverbindungen automatisch. Damit wird der nötige Datenbankzugriffscode auf die wesentlichen Teile reduziert und somit verständlicher und wartbarer.

Eine Datenbankverbindung zu öffnen kann sehr lange dauern (teilweise mehrere Sekunden). Darum greifen die meisten Programme auf Datenbankverbindungspools zu, welche mehrere Datenbankverbindungen halten und die Verbindungen am Ende von Transaktionen nicht schließen, sondern für weitere Datenbankzugriffe offen halten. Apache Commons DBCP bietet so einen Pool von Datenbankverbindungen, basierend auf Apache Commons Pool, welches den Pool selbst verwaltet.

Literatur

  • Henrik Hörning, Reidar Hörning, Torsten Curdt: Jakarta Commons. 1. Auflage. Software & Support, Dezember 2004, ISBN 3935042604 (367 Seiten).
  • Timothy O'Brien: Jakarta Commons Cookbook. 1. Auflage. O'Reilly Media, Inc., 16. November 2004, ISBN 059600706X (400 Seiten).
  • Christian Gross: Applied Software Engineering Using Apache Jakarta Commons. 1. Auflage. Charles River Media, 18. November 2003, ISBN 1584502460 (350 Seiten).

Weblinks

Einzelnachweis

  1. Apache Commons Komponenten

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Apache Commons — проект фонда Apache Software Foundation (далее ASF), имеющий своей целью разработку и поддержку открытого программного обеспечения повторного использования на языке Java, т.е. библиотек Java. В более узком смысле Apache Commons это «большая… …   Википедия

  • Apache Commons — est un projet de la fondation Apache, faisant anciennement parti du projet Jakarta. Le but de ce projet est de fournir un ensemble de biliothèques réutilisables et open source pour Java. Elles sont de ce fait, largement employées dans bon nombre… …   Wikipédia en Français

  • Apache Commons — The Apache Commons is a project of the Apache Software Foundation, formerly under the Jakarta Project. The purpose of the Commons is to provide reusable, open source Java software. The Commons is composed of three parts: proper, sandbox, and… …   Wikipedia

  • Apache — HTTP Server Логотип Apache Тип Веб сервер Разработчик Apache …   Википедия

  • Commons Daemon — Developer(s) Apache Software Foundation Stable release 1.0.1 Development status Active Written in Java …   Wikipedia

  • Apache Maven — Тип Автоматизация сборки Разработчик …   Википедия

  • Apache Derby — Тип Реляционная СУБД Автор Cloudscape Inc (а затем IBM) Разработчик …   Википедия

  • Apache Felix — Apache Felix …   Википедия

  • Apache Harmony — Тип Java Virtual Machine Разработчик Apache Software Foundation Написана на C++ и Java Операционная система Windows и Linux Последняя версия 6.0 M3 (2 сентября …   Википедия

  • Apache Cassandra — Тип Распределённые базы данных Автор Avinash Lakshman, Prashant Malik Разработчик Apache Software Foundation Написана на Java …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”