Apache Commons

Last updated

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.

Contents

Commons Proper

The Commons Proper is dedicated to creating and maintaining reusable 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 software libraries, so that these components can be deployed easily. In addition, Commons components will keep their 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. [1]

ComponentsDescriptionLatest versionReleased
BCEL Byte Code Engineering Library - analyze, create, and manipulate Java class files6.10.02024-07-13
BeanUtils Easy-to-use wrappers around the Java reflection and introspection APIs1.10.02024-12-26
BSF Bean Scripting Framework - interface to scripting languages, including JSR-2233.12011-08-17
ChainChain of Responsibility pattern implementation1.22008-06-01
CLICommand Line arguments parser1.9.02024-08-10
CodecGeneral encoding/decoding algorithms (for example phonetic, base64, URL)1.18.02025-01-24
CollectionsExtends or augments the Java Collections Framework 4.5.0-M22024-06-15
CompressDefines an API for working with TAR, ZIP and BZIP2 files1.27.12024-08-16
ConfigurationReading of configuration/preferences files in various formats2.11.02024-06-07
CryptoCryptographic library optimized with AES-NI wrapping OpenSSL or JCE algorithm implementations1.2.02023-01-14
CSVComponent for reading and writing comma separated value files1.12.02024-09-21
Daemon Generic Daemon (unix) or Service (Windows) wrapper for Java code1.4.02024-05-24
DBCPDatabase connection pooling services2.13.02024-11-26
DbUtilsJDBC helper library1.8.12023-09-09
Digester XML-to-Java-object mapping utility3.22011-12-13
EmailLibrary for sending e-mails1.52017-08-01
ExecAPI for dealing with external process execution and environment management1.4.02024-01-01
FileUploadFile upload capability for servlets and web applications1.52023-02-13
FunctorSupports functional programming using functors, objects representing functions1.0 RC12011-10-20
GeometryGeneral-purpose library for geometric processing1.02021-08-21
ImagingPure-Java image library1.0-alpha52024-04-15
IOCollection of I/O utilities2.18.02024-11-16
JCIJava Compiler Interface1.12013-10-14
JCSJava Caching System3.2.12024-05-27
Jelly XML based scripting and processing engine1.0.12017-09-25
JEXLExpression language which extends the Expression Language of the JSTL3.4.02024-06-02
JXPathUtilities for manipulating Java Beans using the XPath syntax1.32008-08-11
LangProvides extra functionality for classes in java.lang 3.17.02024-08-24
Logging Wrapper around a variety of logging API implementations1.3.52025-01-31
MathLightweight, self-contained mathematics and statistics components4.0-beta12022-12-20
NetCollection of network utilities and protocol implementations3.11.12024-06-07
NumbersNumber types (complex, quaternion, fraction) and utilities (arrays, combinatorics)1.22024-08-12
PoolGeneric object pooling component2.12.12025-01-19
ProxyLibrary for creating dynamic proxies2.0-RC12014-04-07
RDFCommon implementation of RDF 1.1 that could be implemented by systems on the JVM0.5.02017-12-08
RNGImplementions of pseudo-random numbers generators1.62024-07-15
SCXMLImplementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine2.0-M12014-04-03
StatisticsUtilities for statistical applications1.12024-08-20
TextLibrary focused on algorithms working on strings1.13.02024-12-10
ValidatorFramework to define validators and validation rules in an XML file1.8.02023-12-02
VFSVirtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system2.9.02021-06-16
WeaverProvides an easy way to enhance (weave) compiled bytecode2.02018-09-07

Commons Sandbox

The Commons Sandbox provides a workspace where Commons contributors collaborate and experiment on projects not included in the Commons Proper. Commons members champion projects in the Sandbox for promotion to the Commons Proper, and groups of developers work to enhance Sandbox projects until they meet the standards for promotion.

ComponentsDescription
BeanUtils2Redesign of Commons BeanUtils
ClassScanFind Class interfaces, methods, fields, and annotations without loading
CLI2Redesign of Commons CLI
ConvertAims to provide a single library dedicated to the task of converting an object of one type to another
FinderJava library inspired by the UNIX find command
FlatfileJava library for working with flat data structures
GraphGeneral purpose Graph APIs and algorithms
I18nAdds the feature of localized message bundles that consist of one or many localized texts that belong together
IdComponent for generating identifiers
InjectImplementation of JSR 330, a standards compliant dependency injection framework
Javaflow Continuation implementation to capture the state of the application
JNetAllows using dynamically registered URL stream handlers through the java.net API
MonitoringAims to provide a simple but extensible monitoring solution for Java applications
NablaProvides automatic differentiation classes that can generate derivative of any function implemented in the Java language
OpenPGPInterface to signing and verifying data using OpenPGP
PerformanceSmall framework for microbenchmark clients, with implementations for Commons DBCP and Pool
PipelineProvides a set of pipeline utilities designed around work queues that run in parallel to sequentially process data objects

Commons Dormant

The Commons Dormant is a collection of components that have been declared inactive due to little recent development activity. These components may be used, but must be built yourself. It is best to assume that these components will not be released in the near future.

ComponentsDescription
AttributesRuntime API to metadata attributes such as doclet tags
BetwixtServices for mapping JavaBeans to XML documents and vice versa
CacheProvides object caching services
ClazzFocuses on introspection and class manipulation
ContractComponent for making features that come along with contract based programming available
ConvertAims to provide a single library dedicated to the task of converting an object of one type to another
DiscoveryTools for locating resources by mapping service/reference names to resource names
ELInterpreter for the Expression Language defined by the JSP 2.0 specification
EventsProvides additional classes for firing and handling events. It focuses on the Java Collections Framework, providing decorators to other collections that fire events.
Feedparser RSS and Atom parser designed to support all major versions of RSS and Atom, as well as easy ad hoc extension and RSS 1.0 modules capability
JJarJakarta JAR Archive Repository
Latka HTTP functional testing suite for automated QA, acceptance and regression testing
LauncherCross platform Java application launcher
MapperThin abstraction layer around a project's chosen data mapping technology (a.k.a. DAO pattern)
MessengerEasy to use and lightweight framework for working with JMS in the web tier
ModelerMechanisms to create Model MBeans compatible with JMX specification
OGNL Object-Graph Navigation Language
PrimitivesSmaller, faster and easier to work with types supporting Java primitive types
ResourcesProvides a lightweight framework for defining and looking up internationalized message strings keyed by a java.util.Locale and a message key
ScaffoldToolkit for building web applications
ThreadPoolSimple component for asynchronously dispatching work to another thread in a pool for simple multithreaded programming
TransactionImplementations for multi-level locks, transactional collections and transactional file access
WorkflowProvides a framework for building workflow management systems
XMLIOSimple and fast importer for XML configuration or import files

See also

References

Goyal, Vikram (2003), Using the Jakarta Commons, Part I , retrieved August 13, 2006