L'Apache Commons és un projecte de l'Apache Software Foundation, anteriorment sota el Projecte Jakarta. L'objectiu de Commons és proporcionar programari Java reutilitzable i de codi obert. Els Comuns es compon de tres parts: pròpia, sandbox i inactiva.[1]
El Commons Proper es dedica a crear i mantenir components Java reutilitzables. El Commons Proper és un lloc per a la col·laboració i l'intercanvi, on els desenvolupadors de tota la comunitat Apache poden treballar junts en projectes que seran compartits per projectes Apache i usuaris d'Apache. Els desenvolupadors de Commons faran un esforç per assegurar-se que els seus components tinguin dependències mínimes d'altres biblioteques de programari, de manera que aquests components es puguin desplegar fàcilment. A més, els components de Commons mantindran les seves interfícies el més estables possible, de manera que els usuaris d'Apache, així com altres projectes d'Apache, puguin implementar aquests components sense haver de preocupar-se dels canvis en el futur.[2][3]
Categoria
Components
Web
FileUpload : per carregar fitxers a aplicacions web
Net – Col·lecció d'utilitats i implementacions de protocols per a comunicacions de xarxa
EL – Intèrpret per al JSP 2.0 llenguatge d'expressió
Correu electrònic : biblioteca per enviar correus electrònics des de Java
Imatge : biblioteca per llegir, analitzar i escriure diversos formats d'imatge (abans anomenat Sanselan)
Jexl : del llenguatge d'expressió extensió a la biblioteca d'etiquetes estàndard de JavaServer Pages
XML
Betwixt – Serveis per mapejar JavaBeans a XML i viceversa
Digester : mapeig XML a Java
Jelly : motor de processament i scripts basat en XML
JXPath : eines per manipular Java Beans mitjançant la sintaxi XPath
Utilitats
BCEL – Biblioteca per generar, manipular i analitzar bytecode Java
BeanUtils : classes d'embolcall per a la reflexió i la introspecció de Java per manipular Java Beans
Bean Scripting Framework (BSF) : interfície per a llenguatges de script, inclòs JSR-223
CSV : Component per llegir i escriure fitxers CSV
Pool : component genèric d'agrupació d'objectes
Validador : marc per definir validadors i les seves regles mitjançant fitxers XML
Daemon : mecanisme alternatiu per cridar codi Java semblant a un dimoni Unix
Descobriment : eines per localitzar recursos assignant els seus noms de recursos a serveis o referències
Exec : API per gestionar processos externs i gestionar l'entorn d'execució a Java
Launcher : llançador de plataforma neutre per iniciar aplicacions des de Java
Java Compiler Interface (JCI) : biblioteca per compilar codi en bytecode Java
Modelador : eines per crear fàcilment MBeans per a les extensions de gestió de Java
Object Graph Navigation Language (OGNL) : API per navegar per l'arbre d'objectes Java
State Chart XML (SCXML) - Implementació d'un motor d'estats segons l'especificació SCXML que executa estats i transicions d'estats definits
Chain – Implementerung des Chain of Responsibility Design Patterns
Conversions
Còdec : implementació d'algoritmes de codificació/descodificació genèrics com Fonètica, Base64, URL
Comprimir : API per treballar amb fitxers tar, zip i bzip2
Extensions de l'API de Java
Intèrpret de línia d'ordres (CLI) - Analitzador d' arguments de línia d'ordres
Configuració : accés als fitxers de configuració i preferències en diversos formats
Col·leccions – Extensió del Java Collections Framework , a partir de la versió 4 amb genèrics
Agrupació de connexions de base de dades (DBCP) : Serveis per a grups de connexions de bases de dades
DbUtils - Extensions per a JDBC
Functor : implementació d'objectes de funció, objectes que representen funcions
IO : mostra les utilitats d'entrada/sortida
Java Caching System (JCS) : marc per a memòria cau distribuïda
Lang – extensió de les funcionalitats de les classes de java.lang
Registre : embolcall al voltant d'un conjunt de marcs de registre
Matemàtiques – Components per a funcions matemàtiques i estadístiques
Primitives : compilacions de tipus primitius a Java sense autoboxing
Proxy : biblioteca per crear servidors intermediaris dinàmics
VFS : Component per gestionar fitxers, FTP, SMB, Zip, etc. com a sistema de fitxers virtual i lògic
Una de les biblioteques més importants és "Commons Collections", que amplia el marc de Java Collections amb moltes classes útils per gestionar conjunts de dades. La biblioteca "Commons Lang" amplia les funcions bàsiques del paquet java.lang, que conté les classes bàsiques de Java, amb moltes classes útils i els seus mètodes. Amb l'ajuda de "Commons Logging" es crea una API uniforme per a les diferents biblioteques de classes de registre , com ara log4j o java.util.logging. Altres extensions generals a les biblioteques estàndard de Java inclouen: