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 software|open source]] [[Java (software platform)|Java]] software. The Commons is composed of three parts: proper, sandbox, and dormant.
{{Citation style|date=February 2011|details=Violates Wikipedia:External links: "Wikipedia articles may include links to web pages outside Wikipedia (external links), but they should not normally be used in the body of an article."}}
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 dormant.
== Commons Proper ==
The Commons Proper is dedicated to creating and maintaining reusable [[Java (software platform)|Java]] components. The Commons Proper is a place for collaboration and sharing, where developers from throughout the Apache community can work together on projects to be shared by Apache projects and Apache users.
Commons developers will make an effort to ensure that their components have minimal dependencies on other [[Library (computer science)|software libraries]], so that these components can be [[Software deployment|deployed]] easily. In addition, Commons components will keep their [[Interface (computer science)|interfaces]] as stable as possible, so that Apache users, as well as other Apache projects, can implement these components without having to worry about changes in the future.<ref>[http://commons.apache.org/ The Apache Commons root page]</ref>
{|class="wikitable sortable"
! Components
! Description
! Latest Versionversion
! Released
|-
| BCEL
| [http://commons.apache.org/proper/commons-bcel/ BCEL]
| Byte Code Engineering Library - analyze, create, and manipulate Java class files
| 56.210.0
| 20072024-0607-1413
|-
|[[Apache Commons BeanUtils|BeanUtils]]
| [http://commons.apache.org/proper/commons-beanutils/ BeanUtils]
| Easy-to-use wrappers around the Java reflection and introspection APIs.
| 1.911.20
| 20142025-05-2925
|-
| [[Bean Scripting Framework|BSF]]
| [http://commons.apache.org/proper/commons-bsf/ BSF]
| Bean Scripting Framework - interface to scripting languages, including JSR-223
| 3.1
| 20102011-2408-0617
|-
| Chain
| [http://commons.apache.org/proper/commons-chain/ Chain]
| <i>''Chain of Responsibility</i>'' pattern implemention.implementation
| 1.2
| 2008-06-0201
|-
| CLI
| [http://commons.apache.org/proper/commons-cli/ CLI]
| Command Line arguments parser.
| 1.210.0
| 20092025-0307-1930
|-
| Codec
| [http://commons.apache.org/proper/commons-codec/ Codec]
| General encoding/decoding algorithms (for example phonetic, base64, URL).
| 1.919.0
| 20132025-1207-2519
|-
| Collections
| [http://commons.apache.org/proper/commons-collections/ Collections]
| Extends or augments the [[Java collections framework|Java Collections Framework.]]
| 4.5.0
| 20132025-1104-2419
|-
| Compress
| [http://commons.apache.org/proper/commons-compress/ Compress]
| Defines an API for working with tar[[Tar (computing)|TAR]], zip[[ZIP (file format)|ZIP]] and bzip2[[Bzip2|BZIP2]] files.
| 1.828.10
| 20142025-0507-1426
|-
| [http://commons.apache.org/proper/commons-configuration/ Configuration]
| Reading of configuration/preferences files in various formats.
| 12.1012.0
| 20132025-1004-2722
|-
| Crypto
| Cryptographic library optimized with AES-NI wrapping [[OpenSSL]] or JCE algorithm implementations
| 1.2.0
| 2023-01-14
|-
| CSV
| [http://commons.apache.org/proper/commons-csv/ CSV]
| Component for reading and writing [[Comma-separated values|comma separated value]] files.
| 1.14.0
| 20142025-0803-1415
|-
| [[Commons Daemon|Daemon]]
| [http://commons.apache.org/proper/commons-daemon/ Daemon]
| Generic [[Daemon (Unix)|Daemon (unix)]] or [[Service (Windows)]] wrapper for Java code
| Alternative invocation mechanism for unix-daemon-like java code.
| 1.04.151
| 20132025-0301-0413
|-
| DBCP
| [http://commons.apache.org/proper/commons-dbcp/ DBCP]
| Database connection pooling services.
| 2.013.10
| 20142024-0511-2426
|-
| DbUtils
| [http://commons.apache.org/proper/commons-dbutils/ DbUtils]
| JDBC helper library.
| 1.68.1
| 20142023-0709-2009
|-
| Digester
| [http://commons.apache.org/proper/commons-digester/ Digester]
| [[XML]]-to-Java-object mapping utility.
| 3.2
| 2011-12-13
|-
| Email
| [http://commons.apache.org/proper/commons-discovery/ Discovery]
| Library for sending e-mails
| Tools for locating resources by mapping service/reference names to resource names.
| 01.5
| 20112017-0408-2801
|-
| Exec
| [http://commons.apache.org/proper/commons-el/ EL]
| API for dealing with external process execution and environment management
| Interpreter for the Expression Language defined by the JSP 2.0 specification.
| 1.5.0
| 20032025-0605-1816
|-
| FileUpload
| [http://commons.apache.org/proper/commons-email/ Email]
| File upload capability for [[servlets]] and web applications
| Library for sending e-mail from Java.
| 1.36.30
| 20142025-0706-1105
|-
| Functor
| [http://commons.apache.org/proper/commons-exec/ Exec]
| Supports [[functional programming]] using ''functors'', objects representing functions
| API for dealing with external process execution and environment management in Java.
| 1.20 RC1
| 20142011-0110-0220
|-
| Geometry
| [http://commons.apache.org/proper/commons-fileupload/ FileUpload]
| General-purpose library for geometric processing
| File upload capability for your servlets and web applications.
| 1.3.10
| 20142021-0208-0721
|-
| [http://commons.apache.org/proper/commons-functor/ Functor]
| A functor is a function that can be manipulated as an object, or an object representing a single, generic function.
| N/A
| N/A
|-
| Imaging
| [http://commons.apache.org/proper/commons-imaging/ Imaging]
| A purePure-Java image library.
| 1.0-alpha6
| N/A
| 2025-04-27
| N/A
|-
| IO
| [http://commons.apache.org/proper/commons-io/ IO]
| Collection of I/O utilities.
| 2.420.0
| 20122025-0607-1213
|-
| JCI
| [http://commons.apache.org/proper/commons-jci/ JCI]
| Java Compiler Interface
| 1.1
| 2013-10-14
|-
| JCS
| [http://commons.apache.org/proper/commons-jcs/ JCS]
| Java Caching System
| 1.3.2.1
| 2007-062024-05-27
|-
| [[Apache Jelly|Jelly]]
| [http://commons.apache.org/proper/commons-jelly/ Jelly]
| [[XML]] based scripting and processing engine.
| 1.0.1
| 20052017-0609-1625
|-
| JEXL
| [http://commons.apache.org/proper/commons-jexl/ Jexl]
| Expression language which extends the Expression Language of the JSTL.
| 23.15.10
| 20112025-1204-2411
|-
| JXPath
| [http://commons.apache.org/proper/commons-jxpath/ JXPath]
| Utilities for manipulating [[JavaBeans|Java Beans]] using the [[XPath]] syntax.
| 1.34.0
| 20082025-0804-1412
|-
| Lang
| [http://commons.apache.org/proper/commons-lang/ Lang]
| Provides extra functionality for classes in [[java.lang.]]
| 3.318.20
| 20142025-0407-0906
|-
| [[Apache Commons Logging|Logging]]
| [http://commons.apache.org/proper/commons-launcher/ Launcher]
| Wrapper around a variety of logging API implementations
| Cross platform Java application launcher.
| 1.13.5
| 20042025-0801-2231
|-
| Math
| Lightweight, self-contained mathematics and statistics components
| 4.0-beta1
| 2022-12-20
|-
| Net
| [http://commons.apache.org/proper/commons-logging/ Logging]
| WrapperCollection aroundof anetwork variety ofutilities loggingand APIprotocol implementations.
| 3.12.0
| 2025-07-28
|-
| Numbers
| Number types (complex, quaternion, fraction) and utilities (arrays, combinatorics)
| 1.2
| 20142024-0708-1112
|-
| Pool
| [http://commons.apache.org/proper/commons-math/ Math]
| Generic object pooling component
| Lightweight, self-contained mathematics and statistics components.
| 32.312.1
| 20142025-0501-1419
|-
| Proxy
| [http://commons.apache.org/proper/commons-modeler/ Modeler]
| Library for creating dynamic proxies
| Mechanisms to create Model MBeans compatible with JMX specification.
| 2.0.1-RC1
| 20072014-0604-2507
|-
| RDF
| Common implementation of [[Resource Description Framework|RDF]] 1.1 that could be implemented by systems on the JVM
| 0.5.0
| 2017-12-08
|-
| RNG
| Implementions of pseudo-random numbers generators
| 1.6
| 2024-07-15
|-
| SCXML
| Implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine
| 2.0-M1
| 2014-04-03
|-
| Statistics
| Utilities for statistical applications
| 1.1
| 2024-08-20
|-
| Text
| Library focused on algorithms working on strings
| 1.14.0
| 2025-07-20
|-
| Validator
| [http://commons.apache.org/proper/commons-net/ Net]
| Framework to define validators and validation rules in an [[XML]] file
| Collection of network utilities and protocol implementations.
| 31.310.0
| 20132025-0607-1206
|-
| VFS
| [http://commons.apache.org/proper/commons-ognl/ OGNL]
| Virtual File System component for treating files, [[FTP]], [[Server Message Block|SMB]], [[ZIP (file format)|ZIP]] and such like as a single logical file system
| An Object-Graph Navigation Language
| N/A2.10.0
| 2025-02-01
| N/A
|-
| Weaver
| [http://commons.apache.org/proper/commons-pool/ Pool]
| Provides an easy way to enhance (weave) compiled bytecode
| Generic object pooling component.
| 2.2
| 2014-02-24
|-
| [http://commons.apache.org/proper/commons-primitives/ Primitives]
| Smaller, faster and easier to work with types supporting Java primitive types.
| 1.0
| 2003-11-05
|-
| [http://commons.apache.org/proper/commons-proxy/ Proxy]
| Library for creating dynamic proxies.
| 1.0
| 2008-02-28
|-
| [http://commons.apache.org/proper/commons-scxml/ SCXML]
| An implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine.
| 0.9
| 2008-12-01
|-
| [http://commons.apache.org/proper/commons-validator/ Validator]
| Framework to define validators and validation rules in an xml file.
| 1.4.0
| 2012-02-03
|-
| [http://commons.apache.org/proper/commons-vfs/ VFS]
| Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system.
| 2.0
| 20112018-0809-2407
|-
| [http://commons.apache.org/proper/commons-weaver/ Weaver]
| Provides an easy way to enhance (weave) compiled bytecode.
| 1.0
| 2014-03-16
|}
! Description
|-
| BeanUtils2
| [http://commons.apache.org/sandbox/commons-beanutils2/ BeanUtils2]
| Redesign of Commons BeanUtils.
|-
| ClassScan
| [http://commons.apache.org/sandbox/commons-classscan/ ClassScan]
| Find Class interfaces, methods, fields, and annotations without loading.
|-
| CLI2
| [http://commons.apache.org/sandbox/commons-cli2 CLI2]
| Redesign of Commons CLI.
|-
| Convert
| [http://commons.apache.org/sandbox/commons-convert/ Convert]
| Commons-Convert aimsAims to provide a single library dedicated to the task of converting an object of one type to another.
|-
| Finder
| [http://commons.apache.org/sandbox/commons-finder/ Finder]
| Java library inspired by the [[Find (Unix)|UNIX find]] command.
|-
| Flatfile
| [http://commons.apache.org/sandbox/commons-flatfile/ Flatfile]
| Java library for working with flat data structures.
|-
| Graph
| [http://commons.apache.org/sandbox/commons-graph/ Graph]
| A generalGeneral purpose Graph APIs and algorithms.
|-
| I18n
| [http://commons.apache.org/sandbox/commons-i18n/ I18n]
| Adds the feature of localized message bundles that consist of one or many localized texts that belong together.
|-
| Id
| [http://commons.apache.org/sandbox/commons-id/ Id]
| IdComponent isfor a component used to generategenerating identifiers.
|-
|Inject
|Implementation of JSR 330, a standards compliant dependency injection framework
|-
| Javaflow
| [http://commons.apache.org/sandbox/commons-javaflow/ Javaflow]
| [[Continuation]] implementation to capture the state of the application.
|-
| JNet
| [http://commons.apache.org/sandbox/commons-jnet/ JNet]
| JNetAllows allows to useusing dynamically registerregistered urlURL stream handlers through the java.net API.
|-
|Monitoring
|Aims to provide a simple but extensible monitoring solution for Java applications
|-
| Nabla
| [http://commons.apache.org/sandbox/commons-nabla/ Nabla]
| Nabla providesProvides automatic differentiation classes that can generate derivative of any function implemented in the Java language.
|-
| OpenPGP
| [http://commons.apache.org/sandbox/commons-openpgp/ OpenPGP]
| Interface to signing and verifying data using [[OpenPGP.]]
|-
| Performance
| [http://commons.apache.org/sandbox/commons-performance/ Performance]
| A smallSmall framework for [[microbenchmark]] clients, with implementations for Commons DBCP and Pool.
|-
| Pipeline
| [http://commons.apache.org/sandbox/commons-pipeline/ Pipeline]
| Provides a set of pipeline utilities designed around work queues that run in parallel to sequentially process data objects data objects.
|}
! Description
|-
| Attributes
| [http://commons.apache.org/./dormant/commons-attributes/ Attributes]
| Runtime API to metadata attributes such as doclet tags.
|-
| Betwixt
| [http://commons.apache.org/./dormant/commons-betwixt/ Betwixt]
| Services for mapping [[JavaBeans]] to [[XML]] documents, and vice versa.
|-
| Cache
| [http://commons.apache.org/./dormant/cache/ Cache]
| Cache providesProvides object caching services.
|-
| Clazz
| [http://commons.apache.org/./dormant/clazz/ Clazz]
| Clazz focusesFocuses on introspection and class manipulation.
|-
| Contract
| [http://commons.apache.org/./dormant/contract/ Contract]
| ThisComponent componentfor makes all the nicemaking features available to the java programming language that come along with contract based programming. available
|-
| Convert
| [http://commons.apache.org/./dormant/convert/ Convert]
| Commons-Convert aimsAims to provide a single library dedicated to the task of converting an object of one type to another.
|-
|Discovery
|Tools for locating resources by mapping service/reference names to resource names
|-
|EL
|Interpreter for the Expression Language defined by the JSP 2.0 specification
|-
| Events
| [http://commons.apache.org/./dormant/events/ Events]
| Commons-Events providesProvides additional classes for firing and handling events. It focussesfocuses on the [[Java collections framework|Java Collections Framework]], providing decorators to other collections that fire events.
|-
| Feedparser
| [http://commons.apache.org/./dormant/feedparser/ Feedparser]
| A[[RSS]] Javaand RSS/[[Atom (web standard)|Atom]] parser designed to elegantly support all major versions of RSS and Atom, as well as easy ad hoc extension and RSS 1.0 modules capability.
|-
| JJar
| [http://commons.apache.org/./dormant/jjar/ JJar]
| Jakarta JAR Archive Repository
|-
| Latka
| [http://commons.apache.org/./dormant/latka/ Latka]
| Commons-Latka is an [[HTTP]] functional testing suite for automated QA, acceptance and regression testing.
|-
|Launcher
|Cross platform Java application launcher
|-
| Mapper
| Thin abstraction layer around a project's chosen data mapping technology (a.k.a. [[DAO Pattern|DAO pattern]])
|-
| Messenger
| [http://commons.apache.org/./dormant/mapper/ Mapper]
| Easy to use and lightweight framework for working with JMS in the web tier
| Mapper is a thin abstraction layer around a project's chosen data mapping technology (a.k.a. DAO pattern).
|-
|Modeler
|Mechanisms to create Model MBeans compatible with JMX specification
|-
| [[OGNL]]
| [http://commons.apache.org/./dormant/messenger/ Messenger]
| Object-Graph Navigation Language
| Messenger is an easy to use and lightweight framework for working with JMS in the web tier.
|-
|Primitives
|Smaller, faster and easier to work with types supporting Java primitive types
|-
| Resources
| [http://commons.apache.org/./dormant/resources/ Resources]
| Resources providesProvides a lightweight framework for defining and looking up internationalized message strings keyed by a java.util.Locale and a message key.
|-
| Scaffold
| [http://commons.apache.org/./dormant/scaffold/ Scaffold]
| Scaffold is a toolkitToolkit for building web applications.
|-
| ThreadPool
| [http://commons.apache.org/./dormant/threadpool/ ThreadPool]
| ThreadPool is a simpleSimple component for asynchronously dispatching work to another thread in a pool for simple multi threadedmultithreaded programming.
|-
| Transaction
| [http://commons.apache.org/proper/commons-transaction/ Transaction]
| Implementations for multi -level locks, transactional collections and transactional file access.
|-
| Workflow
| [http://commons.apache.org/./dormant/workflow/ Workflow]
| Workflow providesProvides a framework for building workflow management systems.
|-
| XMLIO
| [http://commons.apache.org/./dormant/xmlio/ XMLIO]
| Simple and fast importer for [[XML]] configuration or import files.
|}
{{Reflist}}
{{Citation|last=Goyal|first=Vikram|url=http://www.onjava.com/pub/a/onjava/2003/06/25/commons.html|title=Using the Jakarta Commons, Part I|accessdateaccess-date=August 13, 2006|year=2003}}
== External links ==
* [http://commons.apache.org/ Apache Commons]
* [http://commons.apache.org/components.html Components page]
* [http://commons.apache.org/sandbox.html Sandbox page]
* [http://commons.apache.org/dormant/index.html Dormant page]
{{Apache Software Foundation}}
<!--Categories-->
[[Category:Java (programming language) libraries]]
[[Category:Apache Software Foundation|Commons]]
[[Category:Software using the Apache license]]
[[Category:Apache Commons| ]]
|