# Apache Commons

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.

## Estructuració

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.
| 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 |

## Biblioteques generals

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:
* Commons BeanUtils
* CLI de Commons
* Configuració de Commons
* Matemàtiques comuns

## Referències

* ↑ «An Introduction to Apache Commons Lang 3» (en anglès). [Consulta: 25 març 3034].
* ↑ Kenlon, Seth. «Parse command options in Java with commons-cli | Opensource.com» (en anglès). [Consulta: 25 març 2024].
* ↑ «Index of /commons» (en anglès). [Consulta: 25 març 2024].