Apache commons java api

Apache commons java api

ApacheCon

Intro

The Commons Configuration software library provides a generic configuration interface which enables a Java application to read configuration data from a variety of sources. Commons Configuration provides typed access to single, and multi-valued configuration parameters as demonstrated by the following code:

Double double = config.getDouble("number"); Integer integer = config.getInteger("number");

Configuration parameters may be loaded from the following sources:

  • Properties files
  • XML documents
  • Windows INI files
  • Property list files (plist)
  • JNDI
  • JDBC Datasource
  • System properties
  • Applet parameters
  • Servlet parameters

The full Javadoc API documentation is available here.

Commons Configuration 1.x and 2.x

After its initial release in 2004, Apache Commons Configuration has been steadily improved, and a series of feature releases has been published over the years. All of these releases were binary backwards-compatible. The latest release of this series is version 1.10. This code base is now pretty mature and does what it is expected to do.

Nevertheless, there have been some design decisions made in the past which are problematic in retrospect. For instance, access to configuration objects is always synchronized which might be a performance issue in some use cases, or support for reloading of configuration data is very limited — just to mention a few pain points. These problems could not be fixed without breaking backwards compatibility in the affected areas.

Читайте также:  Как ловить исключения python

Therefore, work has been spent on a major redesign of the library addressing some of the weaknesses of the 1.x versions. The results have been made available over a longer period as a series of alpha and beta releases. Now the final version 2.0 is available incorporating feedback from the community. Note that this is not a drop-in replacement for Commons Configuration 1.x! Changes on client code are required to make use of the new version. There is a Migration guide that can be used as guideline when upgrading from version 1.x to 2.0. It describes the most important changes. A good source of information is also the Changes Report that explains all of the changes and bug fixes that have been applied.

Both Commons Configuration 1.10 and the most recent 2.x release can be downloaded from the Apache download area. The artifacts have also been deployed to Maven central (with different coordinates for both versions to avoid conflicts). Which version should you use? Well, if you are a long-term user of Commons Configuration 1.x and happy with its functionality, there is no urgent pressure to upgrade to the newest version. New projects, however, should start with the new API as it offers more functionality and makes some tasks easier and cleaner. Also note that development currently focuses exclusively on the 2.x branch, so that the probability for bug-fix releases for version 1.x is pretty low.

History

Commons Configuration started as code in Apache JServ. The JServ code was subsequently added to Jakarta Turbine. After Jakarta Turbine, this configuration interface moved to Jakarta Velocity and underwent various improvements. After Velocity, this code was introduced to the Apache Commons as ExtendedProperties . Configuration began life in the Commons as a Sandbox component, and was promoted to the Commons Proper in late 2003.

Bugs

Bugs may be reported via the ASF JIRA system. Detailed information can be found on the issue tracking page.

Copyright © 2001-2023 The Apache Software Foundation. All Rights Reserved.

Apache Commons, Apache Commons Configuration, Apache, the Apache feather logo, and the Apache Commons project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.

Источник

Apache commons java api

ApacheCon

Welcome to Apache Commons

Apache Commons is an Apache project focused on all aspects of reusable Java components.

The Apache Commons project is composed of three parts:

  • The Commons Proper — A repository of reusable Java components.
  • The Commons Sandbox — A workspace for Java component development.
  • The Commons Dormant — A repository of components that are currently inactive.

You may also read our charter, which spells out the goals of the project in greater detail.

The Apache Commons source code repositories are writable for all ASF committers. While Apache Commons is a Commit-Then-Review community, we would consider it polite and helpful for contributors to announce their intentions and plans on the dev mailing list before committing code. All contributors should read our contributing guidelines. We accept patches as SVN diff files uploaded to the Apache bugtracker or as pull request via our github mirrors.

Apache Commons Proper

Commons Proper is dedicated to one principal goal: 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 the Apache projects and Apache users.

Commons developers will make an effort to ensure that their components have minimal dependencies on other 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 (including other Apache projects) can implement these components without having to worry about changes in the future.

This article gives an overview of (some of) the components which can be found here.

We welcome participation from all that are interested, at all skill levels. Coding, documentation and testing are all critical parts of the software development process. If you are interested in participating in any of these aspects, please join us!

Component Description Latest Version Release Date
BCEL Byte Code Engineering Library — analyze, create, and manipulate Java class files 2022-12-06
BeanUtils Easy-to-use wrappers around the Java reflection and introspection APIs. 2019-08-13
BSF Bean Scripting Framework — interface to scripting languages, including JSR-223 3.1 2010-06-24
Chain Chain of Responsibility pattern implemention. 1.2 2008-06-02
CLI Command Line arguments parser. 2021-10-27
Codec General encoding/decoding algorithms (for example phonetic, base64, URL). 2023-06-21
Collections Extends or augments the Java Collections Framework. 2019-07-05
Compress Defines an API for working with tar, zip and bzip2 files. 2023-03-23
Configuration Reading of configuration/preferences files in various formats. 2023-03-28
Crypto A cryptographic library optimized with AES-NI wrapping Openssl or JCE algorithm implementations. 2023-01-23
CSV Component for reading and writing comma separated value files. 2023-02-02
Daemon Alternative invocation mechanism for unix-daemon-like java code. 2022-11-29
DBCP Database connection pooling services. 2021-08-04
DbUtils JDBC helper library. 2017-07-20
Digester XML-to-Java-object mapping utility. 2011-12-13
Email Library for sending e-mail from Java. 2017-08-01
Exec API for dealing with external process execution and environment management in Java. 2014-11-06
FileUpload File upload capability for your servlets and web applications. 2023-23-13
Functor A functor is a function that can be manipulated as an object, or an object representing a single, generic function. 1.0 2011-??-??
Geometry Space and coordinates. 2021-08-21
Imaging (previously called Sanselan) A pure-Java image library. 2022-05-19
IO Collection of I/O utilities. 2023-06-07
JCI Java Compiler Interface 2013-10-14
JCS Java Caching System 2020-08-16
Jelly XML based scripting and processing engine. 2017-09-25
Jexl Expression language which extends the Expression Language of the JSTL. 2021-06-25
JXPath Utilities for manipulating Java Beans using the XPath syntax. 2008-08-14
Lang Provides extra functionality for classes in java.lang. 2021-02-26
Logging Wrapper around a variety of logging API implementations. 2014-07-11
Math Lightweight, self-contained mathematics and statistics components. 2022-12-20
Net Collection of network utilities and protocol implementations. 2022-12-02
Numbers Number types (complex, quaternion, fraction) and utilities (arrays, combinatorics). 2022-11-01
OGNL An Object-Graph Navigation Language 4.0 2013-??-??
Pool Generic object pooling component. 2021-08-18
Proxy Library for creating dynamic proxies. 2008-02-28
RDF Common implementation of RDF 1.1 that could be implemented by systems on the JVM. 2017-12-23
RNG Implementations of random numbers generators. 2022-10-10
SCXML An implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine.
It is capable of executing a state machine defined using a SCXML document, and abstracts out the environment interfaces.
2008-12-01
Statistics Statistics. 2022-12-05
Text Apache Commons Text is a library focused on algorithms working on strings. 2022-09-28
Validator Framework to define validators and validation rules in an xml file. 2020-08-07
VFS Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system. 2021-07-21
Weaver Provides an easy way to enhance (weave) compiled bytecode. 2018-09-07

The Commons Sandbox

The Commons project also contains a workspace that is open to all Apache committers. It’s a place to try out new ideas and prepare for inclusion into the Commons portion of the project or into another Apache project. Users are free to experiment with the components developed in the sandbox, but sandbox components will not necessarily be maintained, particularly in their current state.

See here for Sandbox components.

The Commons Dormant

These are Commons components that have been deemed inactive since they have seen little recent development activity. If you wish to use any of these components, you must build them yourselves. It is best to assume that these components will not be released in the near future.

See here for Dormant components.

Where do I get releases?

The individual components have independent releases. Some releases for some components may be available only through the mirroring system. Some releases for some components (typically the older ones) are not available through the mirroring system.

See the individual websites listed above for the specific downloads, or use the Releases menu option.

How do I contribute, give feedback, fix bugs and so on?

The Commons project really needs and appreciates any contributions, including documentation help, source code and feedback.

  • Discussion occurs on the Commons mailing list.
  • We have an IRC channel on freenode — join #apache-commons.
  • Access to the SVN commons/proper repository is available both online and with a svn client.
  • Access to the SVN commons/sandbox repository is available both online and with a svn client.
  • Access to the SVN commons/dormant repository is available both online and with a svn client.

The Commons HttpClient project used to be a part of Commons, but is now part of Apache HttpComponents — see Jakarta Commons HttpClient

Copyright © 2023 The Apache Software Foundation. All Rights Reserved.

Apache Commons, Apache, the Apache feather logo, and the Apache Commons project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.

Источник

Оцените статью