Lt304888.ru

Туристические услуги

Apache Commons

19-10-2023

Apache Commons — проект фонда Apache Software Foundation, имеющий своей целью разработку и поддержку открытого программного обеспечения повторного использования на языке Java, т.е. библиотек Java. Apache Commons ранее являлся частью проекта Jakarta Project и носил название «Jakarta Commons»[1]. Apache Commons содержит набор библиотек утилит Java самого разного назначения, доступных по лицензии Apache License, и использующихся во многих других проектах с открытым исходным кодом. Утилиты проекта Apache Commons лежат в основе таких проектов как Apache Tomcat, Struts, Hibernate и др.[2][3]

Содержание

Цели проекта

Согласно уставу проекта, проект должен «создавать и поддерживать пакеты, написанные на языке Java, предназначенные для использования в разработке серверных приложений, и спроектированные таким образом, чтобы их можно было использовать независимо в любом более крупном продукте или фреймворке. Каждый пакет будет поддерживаться таким же образом, как и сам продукт Jakarta» (англ. "The subproject shall create and maintain packages written in the Java language, intended for use in server-related development, and designed to be used independently of any larger product or framework. Each package will be managed in the same manner as a larger Jakarta product.")[4].

История

История Apache Commons восходит к 1999 году, когда, в июне, была зарегистрирована ранее известная под названием «Apache Group» некоммерческая организация Apache Software Foundation (далее ASF)[5]. Основным проектом, поддерживаемым фондом, был Apache HTTPD Web Server, созданный между 1995 и 1999 гг. Одним из проектов Apache Software Foundation стал Jakarta Project (проект Jakarta), который являлся результатом сотрудничества компаний Sun Microsystems, IBM, Oracle и сообщества разработчиков веб-сервера (Apache HTTP Server). Несколько позже в рамках проекта Jakarta был создан проект Jakarta Commons, в котором начали активно создавать компоненты на Java. 19 марта 2001 Комитет проект-менеджмента Jakarta утвердил устав проекта[4], в котором оговаривались основные правила и условия работы в проекте[6]. Согласно уставу, первые пакеты были основаны на существующей кодовой базе ASF, включая код работающий с источниками данных и пулами баз данных, с конфигурирациями XML, ресурсами сообщений, интернационализацией, JNDI и именованием, тестовыми наборами. Первым пакетом, вошедшим в состав Commons, был пакет Database Connection Pool. В период 2001-2005 был разработан основной набор библиотек, ставший базисом для Apache Commons. К 2003 секция proper уже содержала 21 компонент[7]. 19 мая 2004 была утверждена новая версия устава, с поправками в старый вариант[4]. К 2005 в Commons было уже 29 компонентов[8]. 20 июня 2007 Apache Board (Совет Apache) по результату анонимного голосования выделил проект Commons из состава проекта Jakarta, после чего Commons стал проектом верхнего уровня (т.е. отдельным независимым проектом) и стал называться Apache Commons[9].

Структура

В иерархии проектов Apache Software Foundation Apache Commons является «проектом верхнего уровня». Библиотеки проекта Commons делятся на 3 секции: proper (корректные), sandbox (песочница) и dormant (спящие). Секция proper — основная секция библотек, которая на октябрь 2012 года включала 43 проекта. Модули секции proper поддерживаются в рабочем состоянии, и обновляются, сохраняя свои интерфейсы насколько возможно неизменными, чтобы не создавать проблемы существующим пользователям. Секция sanbox предназначена для создания новых проектов и подготовки их к включению в секцию proper или в другие проекты apache. На момент 2012 года секция sandbox включала 16 проектов. Доступ для внесения изменений в проекты этой секции открыт для всех зарегистрированных участников Apache. В секцию Dormant переводят старые проекты, в которых была замечена слишком низкая активность по внесениям изменений, и которые Apache не планирует в будущем обновлять. На момент 2012 года туда было включено 15 проектов.

Компоненты

Пояснения к таблице:

  • proper — компоненты секции proper (корректные), т.е. активные и обновляемые
  • sandbox — компоненты секции sandbox (песочница), т.е. находящиеся в стадии разработки и тестирования
  • dormant — компоненты секции dormant (спящие), т.е. устаревшие и необновляемые
  • Первый релиз — дата первого официального релиза или первого стабильного релиза, как правило версии 1.0, библиотеки как отдельного компонента (альфа-релизы, dev-релизы, релиз-кандидаты, pre-релизы, релизы в составе других компонентов и релизы вне Apache/Jakarta Commons не учитываются)
  • таблица отражает состояние на момент октября 2012
Название Сайт Статус Первый релиз Полное название и назначение
Attributes [1] proper 2004-08-15, v2.1[10] Поддержка атрибутов в стиле C#/.Net
BCEL [2] proper 2001-12-12, v5.0[11] Byte Code Engineering Library. Манипуляция java-классами
BeanUtils [3] proper 2001-07-14, v1.0[12] Удобные для использования обертки над пакетами java.lang.reflect и java.beans (API для отражения и самодиагностики)
Betwixt [4] proper 2004-07-03, v0.5[13][14] Связывание JavaBeans с XML-документами
BSF [5] proper 2006-10-06, v2.4.0[15] Bean Scripting Framework. Интерфейс для скриптовых языков
Chain [6] proper 2004-12-09, v1.0[16] Реализация паттерна Цепочка обязанностей
CLI [7] proper 2002-11-06, v1.0[17] Command Line Interface. Парсер аргументов командной строки
Codec [8] proper 2003-05-11, v1.1[18] Кодирование и декодирование алгоритмов, таких как Base64, Hex, Phonetic; и URL.
Collections [9] proper 2002-04-05, v2.0[19] Расширение и дополнение Java Collections Framework.
Compress [10] proper 2010-08-24, v1.1[20] API для работы с файлами ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200 и bzip2.
Configuration [11] proper 2004-10-11, v1.0[21] Чтение файлов конфигурации и настроек различных форматов
CSV [12] proper планируется v1.0[22] Чтение и запись файлов табличных данных формата CSV (от англ. Comma-Separated Values — значения, разделенные запятыми).
Daemon [13] proper 2004-01-13, v1.0[23] API для создания сервисов на платформе WIN32 и демонов на платформе UNIX
DBCP [14] proper 2002-08-12, v1.0[24][25] Database connection pooling services. Создание пула соединений к базе данных, в котором каждое соединение может последовательно обслуживать множество клиентов.
DbUtils [15] proper 2003-11-11, v1.0[26] Обёртка над пакетом Java JDBC для упрощения кода.
Digester [16] proper 2002-01-12, v1.2[27] Обработка файлов конфигурации формата xml, построение дерева объектов на основе структуры xml. Надстройка над парсером xml SAX.
Discovery [17] proper 2006-12-03, v0.4[28][29] Обнаружение реализаций для подключаемых интерфейсов (т.е. нахождение классов по заданному Java-интерфейсу).
EL [18] proper 2003-06-20, v1.0[30] Интерпретатор JSP 2.0 Expression Language (Язык Выражений).
Email [19] proper 2005-09-27, v1.0[31] API для отправки электронной почты.
Exec [20] proper 2009-03-26, v1.0[32] Исполнение внешних процессов из приложения Java и работа с переменными окружения.
FileUpload [21] proper 2003-06-24, v1.0[33][34] Пересылка файлов на сервер через веб-приложение, парсинг HTTP-заголовков, соответствующих RFC 1867.
Functor [22] proper нет[35] Объект-функция, для использования в паттернах Посетитель, Стратегия, Цепочка обязанностей и др.
Imaging (Sanselan) [23] proper нет Библиотека для работы с изображениями
IO [24] proper 2004-05-13, v1.0[36][37] Утилиты ввода/вывода
JCI [25] proper 2007-06-18, v1.0[38][39] Java Compiler Interface. Интерфейс компилятора Java. Используется для компилирования Java из Java-приложений.
JCS [26] proper 2007-06-05, v1.3[40][41][42] Java Caching System. Кэширование данных различной природы для ускорения приложений.
Jelly [27] proper 2005-06-16, v1.0[43] Скриптовый механизм, основанный на XML. Превращение XML в исполняемый код.
Jexl [28] proper 2004-09-07, v1.0[44] Java Expression Language. Язык выражений, расширяющий язык JSTL. Синтаксис похож на ECMAScript и shell-script.
JXPath [29] proper 2002-06-25, v1.0[45] Интерпретатор языка выражений XPath. Манипулирование классами JavaBeans.
Lang [30] proper 2002-10-04, v1.0[46][47][48] Дополнительная функциональность, расширяющая java.lang
Launcher [31] proper 2004-08-22 v1.1[49][50] Кроссплатформенный стартер приложений
Logging [32] proper 2002-08-13, v1.0.1[51][52] Обёртка над множеством реализаций логирования. Тонкий мост между приложением и библиотекой логирования.
Math [33] proper 2004-12-09, v1.0[53][54] Математические и статистические функции
Modeler [34] proper 2002-04-30, v1.0[55] Содание Model MBeans, совместимых с JMX
Net [35] proper 2003-02-23, v1.0[56][57] Реализации различных Интернет-протоколов (на клиентской стороне)
OGNL [36] proper 2011-09-22, v4.0[58] Object-Graph Navigation Language. Язык навигации по графу объектов. Установка и получение свойств Java-объектов. Более мощная альтернатива для BeanUtils и EL/JSTL.
Pool [37] proper 2002-05-04, v1.0[59] API для создания пулов объектов
Primitives [38] proper 2003-11-05, v1.0[60][61] Работа с простыми типами данных и коллекциями.
Proxy [39] proper 2008-03-06, v1.0[62] Создание динамических прокси
SCXML [40] proper 2006-07-28, v0.5[63][64] State Chart XML. Машина состояний (конечный автомат), определённая документом SCXML.
Transaction [41] proper 2004-12-15, v1.0[65][66] Многоуровненые блокировки, транзакционные коллекции, транзакционный доступ к файлам
Validator [42] proper 2002-11-01, v1.0[67][68] Фреймворк для проверки правильности данных с возможностью указания правил в XML-файле
VFS [43] proper 2006-12-30, v1.0[69][70] Virtual File System. Виртуальная файловая система, обращающаяся с обычными файлами, FTP, SMB, ZIP и т.п. как с единой логической файловой системой

Примечания

  1. Apache Commons ToStringBuilder  (англ.). JavaWorld (11/01/2008). Проверено 19 сентября 2012.
  2. Iverson, p. XIII
  3. Iverson, p. 1
  4. ↑ Jakarta Commons Charter v1.1
  5. The Apache Group Incorporates as the Apache Software Foundation  (англ.) (June 30, 1999). Проверено 19 сентября 2012.
  6. Jakarta Commons Charter v1.0
  7. Using the Jakarta Commons, Part 1  (англ.). onjava.com by O’Reilly (06/25/2003). Проверено 19 сентября 2012.
  8. Iverson, pp. 2,3
  9. Apache Commons Charter: Scope of Apache Commons
  10. Commons Attributes 2.1 Released
  11. BCEL 5.0 Released
  12. Commons BeanUtils - Older Releases
  13. Commons Betwixt 0.5 Released
  14. [ANNOUNCEMENT] Jakarta Commons Betwixt 0.5 Released  (англ.). Список рассылки The Jakarta Announcement List (03 Jul 2004). Проверено 13 октября 2012.
  15. Jakarta BSF 2.4.0 released
  16. Commons Chain 1.0 Released
  17. Commons CLI 1.0 Released
  18. 2003 Commons Codec 1.1 Released
  19. Jakarta Commons Collections 2.0 Released
  20. [ANNOUNCE] Commons Compress 1.1 released  (англ.). Список рассылки Apache Announce List (24 Aug 2010). Проверено 20 августа 2012.
  21. Commons Configuration - Changes Report
  22. Commons CSV. Contents of changes.xml. Apache SVN (2012-09-11)
  23. Commons Daemon Package. Version 1.0. Release Notes. Apache SVN (2004-01-13)
  24. Commons DBCP 1.1 Released
  25. [VOTE][DBCP] 1.0 Release Plan  (англ.). Список рассылки Commons Developer List (16 Aug 2002). Проверено 7 октября 2012.
  26. Jakarta Commons DbUtils 1.0 Released
  27. Commons Digester Package. Version 1.2. Release Notes. Apache SVN (2002-01-12)
  28. Commons Discovery 0.4 released
  29. [ANNOUNCEMENT] Commons Discovery 0.4 released  (англ.). Список рассылки Apache Commons User (04 Dec 2006). Проверено 13 октября 2012.
  30. Commons EL 1.0 Released
  31. Jakarta Commons Email 1.0 released
  32. [ANN] commons-exec 1.0 released  (англ.). Список рассылки Apache Commons User (26 Mar 2009). Проверено 29 августа 2012.
  33. Commons FileUpload 1.0 Released
  34. [ANNOUNCEMENT] Commons FileUpload 1.0 Released  (англ.). Список рассылки Apache Commons User (26 Jun 2003). Проверено 30 августа 2012.
  35. Apache Commons Functor - Overview
  36. Commons/IO 1.0 Released
  37. [ANNOUNCEMENT][IO] Jakarta-Commons/IO 1.0 released  (англ.). Список рассылки Apache Commons User (14 May 2004). Проверено 4 октября 2012.
  38. Apache Commons JCI - Downloads
  39. [ANNOUNCEMENT] release of common jci 1.0  (англ.). Список рассылки Apache Commons User (20 Jun 2007). Проверено 4 октября 2012.
  40. Apache Commons JCS - Change Log
  41. 2007 Apr-Jun
  42. [ANNOUNCE] JCS 1.3 released  (англ.). Список рассылки Apache Announce List (11 Jun 2007). Проверено 20 августа 2012.
  43. Commons-Jelly 1.0 released
  44. Commons JEXL 1.0 Released
  45. [ANNOUNCEMENT] JXPath 1.0 Released  (англ.). Список рассылки The Jakarta Announcement List (25 Jun 2002). Проверено 6 октября 2012.
  46. Apache Commons Lang — Release History
  47. Commons Lang 1.0 released
  48. [ANN] Commons Lang 1.0 Released!  (англ.). Список рассылки The Jakarta Announcement List (04 Oct 2002). Проверено 6 октября 2012.
  49. Commons Launcher 1.1 Released
  50. [ANNOUNCEMENT] Commons Launcher 1.1 released  (англ.). Список рассылки The Jakarta Announcement List (22 Aug 2004). Проверено 6 октября 2012.
  51. Commons Logging 1.0.1 released
  52. [ANNOUNCEMENT] Commons Logging 1.0.1 Released  (англ.). Список рассылки The Jakarta Announcement List (13 Aug 2002). Проверено 6 октября 2012.
  53. Commons Math 1.0 Released
  54. [ANNOUNCEMENT] Commons Math 1.0 Released  (англ.). Список рассылки The Jakarta Announcement List (09 Dec 2004). Проверено 8 октября 2012.
  55. Commons Modeler Package. Version 1.0. Release Notes. Apache Commons Modeler
  56. Commons Net 1.0.0 Released
  57. [ANNOUNCE] Commons Net 1.0.0 Released  (англ.). Список рассылки The Jakarta Announcement List (23 Feb 2003). Проверено 8 октября 2012.
  58. Commons OGNL Package. Version 4.0. Release Notes. Apache SVN (2011-09-22)
  59. Commons Pool — Changes Report. Apache Commons.
  60. Jakarta Commons Primitives 1.0 Released
  61. [ANN] Jakarta Commons Primitives 1.0 Released  (англ.). Список рассылки The Jakarta Announcement List (06 Nov 2003). Проверено 8 октября 2012.
  62. [ANNOUNCE] Release of Commons Proxy 1.0  (англ.). Список рассылки Apache Commons User (06 Mar 2008). Проверено 8 октября 2012.
  63. Commons SCXML 0.5 released
  64. [ANNOUNCEMENT] Commons SCXML 0.5 Released  (англ.). Список рассылки Apache Announce List (31 Jul 2006). Проверено 13 октября 2012.
  65. Commons Transaction 1.0 Released
  66. [ANNOUNCE] Commons Transaction 1.0 final released  (англ.). Список рассылки The Jakarta Announcement List (15 Dec 2004). Проверено 13 октября 2012.
  67. Commons Validator 1.0 Released
  68. [ANNOUNCEMENT] Commons Validator 1.0 Released  (англ.). Список рассылки The Jakarta Announcement List (01 Nov 2002). Проверено 13 октября 2012.
  69. Commons VFS 1.0 released
  70. [ANNOUNCEMENT] Commons VFS 1.0 released  (англ.). Список рассылки Apache Commons User (30 Dec 2006). Проверено 13 октября 2012.

Литература

Ссылки

  • commons.apache.org — официальный сайт проекта
  • Goyal, Vikram. Using the Jakarta Commons. 2003. Part 1, Part 2, Part 3. — серия статей об использовании Jakarta Commons (ныне Apache Commons)
  • Narayanan A.R. Extend the JDK Classes with Jakarta Commons. 2005. Part 1, Part 2, Part 3 - серия статей об использовании Jakarta Commons (ныне Apache Commons)

Apache Commons.

© 2020–2023 lt304888.ru, Россия, Волжский, ул. Больничная 49, +7 (8443) 85-29-01