Apache Commons (Apache Commons)

Перейти к навигации Перейти к поиску

Apache Commons — проект фонда Apache Software Foundation (далее ASF), имеющий своей целью разработку и поддержку открытого программного обеспечения повторного использования на языке Java, то есть библиотек Java. В более узком смысле Apache Commons — это «большая коллекция маленьких Java-утилит»[1]. Apache Commons ранее являлся частью проекта Jakarta Project и носил название «Jakarta Commons»[2]. Apache Commons содержит набор библиотек утилит Java самого разного назначения, доступных по лицензии Apache License, и использующихся во многих других проектах с открытым исходным кодом. Утилиты проекта Apache Commons лежат в основе таких проектов как Apache Tomcat, Struts, Hibernate и др.[3][4] По мнению Гейра Магнуссона Джуниора (англ. Geir Magnusson Jr), члена совета директоров ASF, бывшего техническим директором и лидером в таких компаниях как 10gen, Joost, Adeptra, Bloomberg и Intel, Apache Commons стал «местом, где программисты на языке Java в первую очередь ищут помощи, чтобы решить общие проблемы серверного и клиентского программирования»[5].

Цели проекта[править | править код]

Согласно уставу проекта, проект должен «создавать и поддерживать пакеты, написанные на языке 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.")[6].

История[править | править код]

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

Структура[править | править код]

В иерархии проектов Apache Software Foundation Apache Commons является проектом «верхнего уровня». В свою очередь, Commons разбивается на множество проектов «второго уровня». Каждый проект второго уровня имеет свой сайт, каталог в общем репозитории исходного кода, каталог в общей системе отслеживания ошибок и имеет своей целью разработку одного одноимённого компонента (библиотеки) Java. Активные проекты имеют несколько постоянных участников, неактивные проекты могут вообще не иметь постоянных участников. Компоненты представляют собой JAR файлы, как правило не превышающие по объёму 1 Мб[12]. Подпроекты Commons делятся на 3 секции: proper (корректные), sandbox (песочница) и dormant (спящие). Секция proper — основная секция проектов, которая на октябрь 2012 года включала 43 проекта. Компоненты секции proper поддерживаются в рабочем состоянии, и обновляются, сохраняя свои интерфейсы насколько возможно неизменными, чтобы не создавать проблемы существующим пользователям. Секция sandbox предназначена для создания новых проектов и подготовки их к включению в секцию proper или в другие проекты apache. В октябре 2012 года секция sandbox включала 16 проектов. Доступ для внесения изменений в проекты этой секции открыт для всех зарегистрированных участников Apache. В секцию Dormant переводят старые проекты, в которых была замечена слишком низкая активность по внесениям изменений, или полное отсутствие активности, и которые ASF не планирует в будущем обновлять (выпускать новые версии). К концу 2012 года туда было включено 15 проектов.

Компоненты[править | править код]

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

  • proper — компоненты секции proper (корректные), «зрелые» компоненты, то есть активные и обновляемые, API которых стабилизирован;
  • sandbox — компоненты секции sandbox (песочница), «сырые» компоненты, то есть находящиеся в стадии разработки и тестирования;
  • dormant — компоненты секции dormant (спящие), то есть устаревшие и необновляемые, релизов по данным компонентам не планируется;
  • Первый релиз — дата первого официального релиза или первого стабильного релиза, как правило версии 1.0, библиотеки как отдельного компонента (альфа-релизы, dev-релизы, релиз-кандидаты, pre-релизы, релизы в составе других компонентов и релизы вне Apache/Jakarta Commons не учитываются)
  • таблица отражает состояние на декабрь 2012
Название Сайт Статус Первый релиз Описание
Attributes [1] proper 2004-08-15, v2.1[13] Поддержка атрибутов в стиле C#/.Net
BCEL [2] proper 2001-12-12, v5.0[14] Byte Code Engineering Library. Манипуляция java-классами
BeanUtils [3] proper 2001-07-14, v1.0[15] Удобные для использования обертки над пакетами java.lang.reflect и java.beans (API для отражения и самодиагностики)
Betwixt [4] proper 2004-07-03, v0.5[16][17] Связывание JavaBeans с XML-документами
BSF [5] proper 2006-10-06, v2.4.0[18] Bean Scripting Framework. Интерфейс для скриптовых языков
Chain [6] proper 2004-12-09, v1.0[19] Реализация паттерна Цепочка обязанностей
CLI [7] proper 2002-11-06, v1.0[20] Command Line Interface. Парсер аргументов командной строки
Codec [8] proper 2003-05-11, v1.1[21] Кодирование и декодирование алгоритмов, таких как Base64, Hex, Phonetic; и URL.
Collections [9] proper 2002-04-05, v2.0[22] Расширение и дополнение Java Collections Framework.
Compress [10] proper 2010-08-24, v1.1[23] API для работы с файлами ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200 и bzip2.
Configuration [11] proper 2004-10-11, v1.0[24] Чтение файлов конфигурации и настроек различных форматов
CSV [12] proper планируется v1.0[25] Чтение и запись файлов табличных данных формата CSV (от англ. Comma-Separated Values — значения, разделенные запятыми).
Daemon [13] proper 2004-01-13, v1.0[26] API для создания сервисов на платформе WIN32 и демонов на платформе UNIX
DBCP [14] proper 2002-08-12, v1.0[27][28] Database connection pooling services. Создание пула соединений к базе данных, в котором каждое соединение может последовательно обслуживать множество клиентов.
DbUtils [15] proper 2003-11-11, v1.0[29] Обёртка над пакетом Java JDBC для упрощения кода.
Digester [16] proper 2002-01-12, v1.2[30] Обработка файлов конфигурации формата xml, построение дерева объектов на основе структуры xml. Надстройка над парсером xml SAX.
Discovery [17] proper 2006-12-03, v0.4[31][32] Обнаружение реализаций для подключаемых интерфейсов (то есть нахождение классов по заданному Java-интерфейсу).
EL [18] proper 2003-06-20, v1.0[33] Интерпретатор JSP 2.0 Expression Language (Язык Выражений).
Email [19] proper 2005-09-27, v1.0[34] API для отправки электронной почты.
Exec [20] proper 2009-03-26, v1.0[35] Исполнение внешних процессов из приложения Java и работа с переменными окружения.
FileUpload [21] proper 2003-06-24, v1.0[36][37] Пересылка файлов на сервер через веб-приложение, парсинг HTTP-заголовков, соответствующих RFC 1867.
Functor [22] proper нет[38] Объект-функция, для использования в паттернах Посетитель, Стратегия, Цепочка обязанностей и др. В сентябре 2005 был переведен в Dormant[39][40], а в сентябре 2011 переведен в Proper[41].
Imaging (Sanselan) [23] proper нет Библиотека для работы с изображениями
IO [24] proper 2004-05-13, v1.0[42][43] Утилиты ввода-вывода
JCI [25] proper 2007-06-18, v1.0[44][45] Java Compiler Interface. Интерфейс компилятора Java. Используется для компилирования Java из Java-приложений.
JCS [26] proper 2007-06-05, v1.3[46][47][48] Java Caching System. Кэширование данных различной природы для ускорения приложений.
Jelly [27] proper 2005-06-16, v1.0[49] Скриптовый механизм, основанный на XML. Превращение XML в исполняемый код.
Jexl [28] proper 2004-09-07, v1.0[50] Java Expression Language. Язык выражений, расширяющий язык JSTL. Синтаксис похож на ECMAScript и shell-script.
JXPath [29] proper 2002-06-25, v1.0[51] Интерпретатор языка выражений XPath. Манипулирование классами JavaBeans.
Lang [30] proper 2002-10-04, v1.0[52][53][54] Дополнительная функциональность, расширяющая java.lang
Launcher [31] proper 2004-08-22 v1.1[55][56] Кроссплатформенный стартер приложений
Logging [32] proper 2002-08-13, v1.0.1[57][58] Обёртка над множеством реализаций логирования. Тонкий мост между приложением и библиотекой логирования.
Math [33] proper 2004-12-09, v1.0[59][60] Математические и статистические функции
Modeler [34] proper 2002-04-30, v1.0[61] Создание Model MBeans, совместимых с JMX
Net [35] proper 2003-02-23, v1.0[62][63] Реализации различных Интернет-протоколов (на клиентской стороне)
OGNL [36] proper 2011-09-22, v4.0[64] Object-Graph Navigation Language. Язык навигации по графу объектов. Установка и получение свойств Java-объектов. Более мощная альтернатива для BeanUtils и EL/JSTL.
Pool [37] proper 2002-05-04, v1.0[65] API для создания пулов объектов
Primitives [38] proper 2003-11-05, v1.0[66][67] Работа с простыми типами данных и коллекциями.
Proxy [39] proper 2008-03-06, v1.0[68] Создание динамических прокси
RNG [40] proper Генераторы случайных чисел
SCXML [41] proper 2006-07-28, v0.5[69][70] State Chart XML. Машина состояний (конечный автомат), определённая документом SCXML.
Transaction [42] proper 2004-12-15, v1.0[71][72] Многоуровневые блокировки, транзакционные коллекции, транзакционный доступ к файлам
Validator [43] proper 2002-11-01, v1.0[73][74] Фреймворк для проверки правильности данных с возможностью указания правил в XML-файле
VFS [44] proper 2006-12-30, v1.0[75][76] Virtual File System. Виртуальная файловая система, обращающаяся с обычными файлами, FTP, SMB, ZIP и т. п. как с единой логической файловой системой
benchmark нет dormant нет Тестирование производительности Java-кода (с возможностью включения/выключения во время исполнения). Не получил развития из-за существования достойных аналогов. Переведен в dormant в декабре 2005[77][78], пролежав в sandbox меньше года.
Cache [45] dormant нет Кэширование объектов. API для хранения/извлечения объектов на основе ключа. Не получил развития, так как был вытеснен компонентами Stratum, JCS, EHCache и др., и кроме того зачастую может быть замещён классом LRUMap из Commons Collections[79]. Переведен в dormant в сентябре 2005[40][80].
Clazz [46] dormant нет Расширенный вариант java.lang.Class, который позволяет изменять определение класса во время исполнения. Предназначен для обработки Java-бинов в JDK при работе с классами List и Map и предоставляет альтернативу java.beans.Introspector. Переведен в dormant в сентябре 2005[40][81].
Codec-multipart нет dormant нет Полезен для веб-браузера, написанного на Java. Позволяет закодировать набор файлов и пары имя/значение в формате multipart/form-data (по протоколу, описанному в RFC2388 [47]). Переведен в dormant в сентябре 2005[40][82], пролежав в Sandbox полтора года.
Combo нет dormant нет Commons Combo, он же Commons Core. Проект, который так и не вышел за рамки обсуждения, начатого в августе 2003[83]. Предполагалось, что это будет сборка нескольких часто используемых компонентов Commons в один общий пакет JAR, или инструмент для создания такой сборки самим пользователем. В январе 2006 переведен в dormant[84][85].
Contract [48] dormant нет API для контрактного программирования в Java. Переведен в dormant в декабре 2005[86] после 6 месяцев отсутствия активности в проекте[77]
Convert [49] dormant нет Конвертация объектов одного типа в другой. Переведен в dormant в сентябре 2005[40][87].
Events [50] dormant нет Запуск и обработка событий. Декораторы над классами Java Collections Framework, которые также запускают события. Переведен в dormant в сентябре 2005[40][88].
Feedparser [51] dormant нет Парсер лент типа RSS, Atom и т. п. Переведен в dormant из proper в январе 2006[89][90]
Filters нет dormant нет Сервлетные фильтры разного назначения для веб-приложений. Используют Servlet 2.3 API. Могут быть подключены в веб-приложения, как плагины. Переведен в dormant в сентябре 2005[40][91].
Grant нет dormant нет Небольшой набор хаков для Ant, чтобы лучше/иначе управлять путями и опциями. Переведен в dormant в сентябре 2005[92]
Http нет dormant нет Содержит простые утилиты для работы с протоколом HTTP (детектор браузера, парсер заголовка). Переведен в dormant в сентябре 2005[40][93].
Jex нет dormant нет Механизм плагинов для интерпретаторов языков выражений. Изначально включает два языка: JXPath и Bexl. Переведен в dormant в сентябре 2005[40][94].
JJar [52] dormant нет Jakarta JAR Archive Repository. Попытка создать сервис наподобие CPAN [53] для Java-сообщества. Состоит из 2-х частей: распределённый репозиторий и набор инструментов для работы с репозиториями и управления пакетами. Переведен в dormant в сентябре 2005[40][95].
JPath нет dormant нет Механизм для использования языка XPath с графами обыкновенных объектов (JavaBeans, коллекции (контейнеры), массивы, объекты map и примитивные значения. Опирается на JAXP и реализацию интерпретатора XPath. Переведен в dormant в сентябре 2005[40][96].
Jrcs нет dormant нет Java RCS Tools. Парсинг и манипулирование файлами-архивами RCS наподобие Revision Control System и Concurrent Versions System. Зависит от пакета ORO. Пакетом занимался только один разработчик, который так и не смог создать для него сайт, привлечь новых участников, завершить разработку и выпустить релиз. В августе 2005 Jrcs официально перешёл в Codehaus [54], откуда он потом бесследно исчез, а кодовая база на сайте ASF переведена в Dormant[97].
Jux нет dormant нет Commons JUnit Extensions. Предназначен для создания тестов. Зависит от junit. Переведен в dormant в сентябре 2005[40][98].
Latka [55] dormant нет Инструмент функционального тестирования HTTP, использующий XML для задания тестов. Для автоматизированного QA. Переведен в dormant в марте 2006[99][100]
Mapper [56] dormant нет Общий интерфейс (мост) над технологией маппирования Java-объектов, выбранной проектом. Поддерживает техники: JDBC, JDO, EJB, Hibernate, iBatis, XML. Переведен в dormant в сентябре 2005[40][101]
Messenger [57] dormant нет Фреймворк для облегчения работы с Java Message Service. Переведен в dormant в сентябре 2005[40][102]
Periodicity нет dormant нет Построенная на веб-интерфейсе календарная система. Переведена в dormant в сентябре 2005[40][103]
Reflect нет dormant нет Java Reflection Framework. API для доступа к классам, методам и членам динамически во время исполнения. Переведен в dormant в сентябре 2005[40][104]
Resources [58] dormant нет Легковесный фреймворк для определения и поиска локализованных строк, завязанных на java.util.Locale. Переведен в dormant в марте 2006 г.[100][105]
Rupert нет dormant нет Набор утилит для использования в разработке веб-приложений на основе сервлетов. Переведен в dormant в сентябре 2005[40][106]
Scaffold [59] dormant нет Тулкит для построения веб-приложений. Переведен в dormant в сентябре 2005[40][107]
Services нет dormant нет Service Manager. Универсальный мост, соединяющий центральное приложение (например, Jakarta Struts) с внешними модулями. Переведен в dormant в сентябре 2005[40][108]
Servlet нет dormant нет Утилиты для разработки сервлетов. Переведен в dormant в декабре 2005[77][109]
Simplestore нет dormant нет Интерфейс для хранения и извлечения объектов. Переведен в dormant в сентябре 2005[40][110]
Tbm нет dormant нет Thread Benchmark. Фреймворк для тестирования многопоточных приложений. Поиск узких мест многопоточности (threading bottlenecks) и синхронизации (synchronization bottlenecks). Переведен в dormant в сентябре 2005[40][111]
Test нет dormant нет Утилиты для тестирования. Переведен в dormant в сентябре 2005[40][112]
Threading нет dormant нет Утилитные классы и интерфейсы для координации и коммуникации потоков между собой в многопоточных серверных приложениях. Переведен в dormant в сентябре 2005[40][113]
ThreadPool [60] dormant нет Фреймворк для работы с пулами потоков и асинхронного выполнения задач. Вытеснен библиотекой Доуга Леа util.concurrent, предшественником пакета java.util.concurrent, входящего в состав JDK. Переведен в dormant в сентябре 2005[40][114]
Transaction нет dormant 2004-12-15, v1.0[71][115] Утилитные классы для транзакционного программирования на Java (многоуровневые блокировщики, коллекции, транзакционный доступ к файлам). В марте 2010 основной разработчик отказался от продолжения работы над проектом, обосновав это тем, что, по его мнению, невозможно построить транзакционную файловую систему поверх обычной[116]. Переведен в dormant в апреле 2010[117] Transaction — это первый компонент Commons, который был переведен в dormant из секции proper, то есть компонент, имеющий релизы. До него в dormant переводились только компоненты из sandbox[118].
Workflow [61] dormant нет Компонент для связи компонентов и модулей Java-приложения при помощи скриптов (концепция «Композиция» приложения). Переведен в dormant в сентябре 2005[40][119]
Xmlio [62] dormant нет Импортирование/экспортирование XML в/из Java-приложений. Переведен в dormant в сентябре 2005[40][120]
Xmlunit нет dormant нет Переведен в dormant в сентябре 2005[40][121]
Xo нет dormant нет Компонент Apache Turbine. Переведен в dormant в сентябре 2005[40][122]

Распространение[править | править код]

Согласно утверждению Гийома Руссо (директор компании Antelink, поддерживающей Antepedia, крупнейший онлайн-справочник и поисковик компонентов с открытым исходным кодом), 3 % программного обеспечения с открытым исходным кодом используют библиотеки Apache Commons[123]. В пятёрку самых популярных компонентов входят компоненты Logging, Collections, Lang, BeanUtils, Httpclient.

По статистике сайта AppBrain.com (онлайн-библиотека приложений Android), компоненты Apache Commons Codec и IO используются более чем в 1 % приложений на платформе Android, а Logging и Lang использует более 0,5 % приложений Android[124].

Библиотека Apache Commons Math была выбрана в 2011 году французским космическим агентством CNES (Centre National d'Études Spatiales) в качестве базиса для разработки динамичных систем космических полётов, известных как проект Сириус (Sirius)[125].

Примечания[править | править код]

  1. John T. Bell, Stanford Ng, James T. Lambros. J2EE™ Open Source Toolkit: Building an Enterprise Platform with Open Source Tools. — Wiley Publishing, Inc, 2003. — P. 11. — ISBN 0-471-44435-9.
  2. Marx, Dustin. Apache Commons ToStringBuilder (англ.). JavaWorld (11 января 2008). Дата обращения: 19 сентября 2012. Архивировано из оригинала 31 октября 2012 года.
  3. Iverson, 2005, p. XIII.
  4. Iverson, 2005, p. 1.
  5. 1 2 3 4 Oak, 2004, pp. Foreword.
  6. 1 2 3 Jakarta Commons Charter v1.1. Дата обращения: 20 сентября 2012. Архивировано 14 ноября 2012 года.
  7. The Apache Group Incorporates as the Apache Software Foundation (англ.) (30 июня 1999). Дата обращения: 19 сентября 2012. Архивировано из оригинала 31 октября 2012 года.
  8. Jakarta Commons Charter v1.0
  9. Goyal, Vikram. Using the Jakarta Commons, Part 1 (англ.). onjava.com by O’Reilly (25 июня 2003). Дата обращения: 19 сентября 2012. Архивировано из оригинала 31 октября 2012 года.
  10. Iverson, 2005, pp. 2,3.
  11. Apache Commons Charter: Scope of Apache Commons. Дата обращения: 19 сентября 2012. Архивировано 12 октября 2012 года.
  12. Oak, 2004.
  13. Apache Jakarta Project, 2004b, Commons Attributes 2.1 Released.
  14. Apache Jakarta Project, 2001, BCEL 5.0 Released.
  15. Commons BeanUtils — Older Releases. Дата обращения: 21 сентября 2012. Архивировано 20 сентября 2012 года.
  16. Apache Jakarta Project, 2004b, Commons Betwixt 0.5 Released.
  17. Donkin, Robert Burrell (03 Jul 2004). "[ANNOUNCEMENT] Jakarta Commons Betwixt 0.5 Released". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 14 ноября 2015. Дата обращения: 13 октября 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  18. Apache Jakarta Project, 2006b, Jakarta BSF 2.4.0 released.
  19. Apache Jakarta Project, 2004b, Commons Chain 1.0 Released.
  20. Apache Jakarta Project, 2002, Commons CLI 1.0 Released.
  21. Apache Jakarta Project, 2003, 2003 Commons Codec 1.1 Released.
  22. Apache Jakarta Project, 2002, Jakarta Commons Collections 2.0 Released.
  23. Grobmeier, Christian (24 Aug 2010). "[ANNOUNCE] Commons Compress 1.1 released". Apache Announce List (Mailing list) (англ.). Архивировано 2 февраля 2012. Дата обращения: 20 августа 2012.
  24. Commons Configuration — Changes Report. Дата обращения: 22 сентября 2012. Архивировано 26 сентября 2012 года.
  25. Gary Gregory. Commons CSV. Contents of changes.xml (недоступная ссылка). Apache SVN (2012-09-11)
  26. Yoav Shapira. Commons Daemon Package. Version 1.0. Release Notes (недоступная ссылка). Apache SVN (2004-01-13)
  27. Apache Jakarta Project, 2003, Commons DBCP 1.1 Released.
  28. Nielsen, Glenn (16 Aug 2002). "[VOTE][DBCP] 1.0 Release Plan". Commons Developer List (Mailing list) (англ.). Архивировано 5 марта 2016. Дата обращения: 7 октября 2012.
  29. Apache Jakarta Project, 2003, Jakarta Commons DbUtils 1.0 Released.
  30. Scott Sanders. Commons Digester Package. Version 1.2. Release Notes (недоступная ссылка). Apache SVN (2002-01-12)
  31. Apache Jakarta Project, 2006b, Commons Discovery 0.4 released.
  32. Yandell, Henri (04 Dec 2006). "[ANNOUNCEMENT] Commons Discovery 0.4 released". Apache Commons User (Mailing list) (англ.). Архивировано 22 сентября 2015. Дата обращения: 13 октября 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  33. Apache Jakarta Project, 2003, Commons EL 1.0 Released.
  34. Apache Jakarta Project, 2005b, Jakarta Commons Email 1.0 released .
  35. Benson, Matt (26 Mar 2009). "[ANN] commons-exec 1.0 released". Apache Commons User (Mailing list) (англ.). Архивировано 25 сентября 2015. Дата обращения: 29 августа 2012.
  36. Apache Jakarta Project, 2003, Commons FileUpload 1.0 Released.
  37. Cooper, Martin (26 Jun 2003). "[ANNOUNCEMENT] Commons FileUpload 1.0 Released". Apache Commons User (Mailing list) (англ.). Архивировано 5 марта 2016. Дата обращения: 30 августа 2012.
  38. Apache Commons Functor — Overview. Дата обращения: 30 сентября 2012. Архивировано 13 ноября 2012 года.
  39. Henri Yandell (bayard). Revision 267386. Dormant under the new rules. Apache SVN (2005-09-03)
  40. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Yandell, Henri (28 Aug 2005). "[sandbox] September archive of components". Commons Developer List (Mailing list) (англ.). Архивировано 5 марта 2016. Дата обращения: 27 ноября 2012.
  41. Tripodi, Simone (19 Sep 2011). "[VOTE][RESULT][sanbox] Graduate [functor] as proper component". Commons Developer List (Mailing list) (англ.). Архивировано 5 марта 2016. Дата обращения: 24 февраля 2013.
  42. Apache Jakarta Project, 2004a, Commons/IO 1.0 Released.
  43. Yandell, Henri (14 May 2004). "[ANNOUNCEMENT][IO] Jakarta-Commons/IO 1.0 released". Apache Commons User (Mailing list) (англ.). Архивировано 5 марта 2016. Дата обращения: 4 октября 2012.
  44. Apache Commons JCI — Downloads Архивировано 14 мая 2012 года.
  45. Curdt, Torsten (20 Jun 2007). "[ANNOUNCEMENT] release of common jci 1.0". Apache Commons User (Mailing list) (англ.). Архивировано 17 сентября 2011. Дата обращения: 4 октября 2012.
  46. Apache Commons JCS — Change Log. Дата обращения: 4 октября 2012. Архивировано 14 ноября 2012 года.
  47. Apache Jakarta Project. News & Status. 2007 Apr-Jun Архивная копия от 23 октября 2012 на Wayback Machine
  48. Vandahl, Thomas (11 Jun 2007). "[ANNOUNCE] JCS 1.3 released". Apache Announce List (Mailing list) (англ.). Архивировано 2 февраля 2012. Дата обращения: 20 августа 2012.
  49. Apache Jakarta Project, 2005b, Commons-Jelly 1.0 released .
  50. Apache Jakarta Project, 2004b, Commons JEXL 1.0 Released.
  51. Plotnikov, Dmitri (25 Jun 2002). "[ANNOUNCEMENT] JXPath 1.0 Released". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 9 ноября 2015. Дата обращения: 6 октября 2012.
  52. Apache Commons Lang — Release History. Дата обращения: 6 октября 2012. Архивировано из оригинала 29 сентября 2012 года.
  53. Apache Jakarta Project, 2002, Commons Lang 1.0 released.
  54. Yandell, Henri (04 Oct 2002). "[ANN] Commons Lang 1.0 Released!". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 10 ноября 2015. Дата обращения: 6 октября 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  55. Apache Jakarta Project, 2004b, Commons Launcher 1.1 Released.
  56. Shapira, Yoav (22 Aug 2004). "[ANNOUNCEMENT] Commons Launcher 1.1 released". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 10 ноября 2015. Дата обращения: 6 октября 2012.
  57. Apache Jakarta Project, 2002, Commons Logging 1.0.1 released.
  58. Sanders, Scott (13 Aug 2002). "[ANNOUNCEMENT] Commons Logging 1.0.1 Released". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 9 ноября 2015. Дата обращения: 6 октября 2012.
  59. Apache Jakarta Project, 2004b, Commons Math 1.0 Released.
  60. Steitz, Phil (09 Dec 2004). "[ANNOUNCEMENT] Commons Math 1.0 Released". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 9 ноября 2015. Дата обращения: 8 октября 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  61. Craig R. McClanahan. Commons Modeler Package. Version 1.0. Release Notes Архивировано 28 сентября 2012 года.. Apache Commons Modeler
  62. Apache Jakarta Project, 2003, Commons Net 1.0.0 Released.
  63. Brekke, Jeffrey D. (23 Feb 2003). "[ANNOUNCE] Commons Net 1.0.0 Released". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 6 ноября 2015. Дата обращения: 8 октября 2012.
  64. Simone Tripodi. Commons OGNL Package. Version 4.0. Release Notes (недоступная ссылка). Apache SVN (2011-09-22)
  65. Commons Pool — Changes Report Архивная копия от 16 октября 2012 на Wayback Machine. Apache Commons.
  66. Apache Jakarta Project, 2003, Jakarta Commons Primitives 1.0 Released.
  67. Waldhoff, Rodney (06 Nov 2003). "[ANN] Jakarta Commons Primitives 1.0 Released". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 14 ноября 2015. Дата обращения: 8 октября 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  68. Carman, James (06 Mar 2008). "[ANNOUNCE] Release of Commons Proxy 1.0". Apache Commons User (Mailing list) (англ.). Архивировано 2 октября 2015. Дата обращения: 8 октября 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  69. Apache Jakarta Project, 2006a, Commons SCXML 0.5 released.
  70. Akolkar, Rahul (31 Jul 2006). "[ANNOUNCEMENT] Commons SCXML 0.5 Released". Apache Announce List (Mailing list) (англ.). Архивировано 13 июня 2013. Дата обращения: 13 октября 2012.
  71. 1 2 Apache Jakarta Project, 2004b, Commons Transaction 1.0 Released.
  72. Zeigermann, Oliver (15 Dec 2004). "[ANNOUNCE] Commons Transaction 1.0 final released". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 14 ноября 2015. Дата обращения: 13 октября 2012.
  73. Apache Jakarta Project, 2002, Commons Validator 1.0 Released.
  74. Turner, James (01 Nov 2002). "[ANNOUNCEMENT] Commons Validator 1.0 Released". The Jakarta Announcement List (Mailing list) (англ.). Архивировано 6 ноября 2015. Дата обращения: 13 октября 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  75. Apache Jakarta Project, 2006b, Commons VFS 1.0 released.
  76. Ivankovits, Mario (30 Dec 2006). "[ANNOUNCEMENT] Commons VFS 1.0 released". Apache Commons User (Mailing list) (англ.). Архивировано 11 декабря 2010. Дата обращения: 13 октября 2012.
  77. 1 2 3 Yandell, Henri (01 Dec 2005). "[sandbox] December dormancy proposal". Commons Developer List (Mailing list) (англ.). Архивировано 30 сентября 2015. Дата обращения: 29 ноября 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  78. Henri Yandell (bayard). Revision 354663. moving to dormancy. Apache SVN (2005-12-07)
  79. Waldhoff, Rodney (31 Dec 2002). "[cache] Release?". Commons Developer List (Mailing list) (англ.). Архивировано 5 марта 2016. Дата обращения: 27 ноября 2012.
  80. Henri Yandell (bayard). Revision 267380. Dormant under the new rules. Apache SVN (2005-09-03)
  81. Henri Yandell (bayard). Revision 267381. Dormant under the new rules. Apache SVN (2005-09-03)
  82. Henri Yandell (bayard). Revision 267382. Dormant under the new rules. Apache SVN (2005-09-03)
  83. Yandell, Henri (14 Aug 2003). "[combo] Commons Core release?". Commons Developer List (Mailing list) (англ.). Архивировано 5 марта 2016. Дата обращения: 3 декабря 2012.
  84. Rahul Akolkar (rahul). Revision 366585. Move combo to dormant. Apache SVN (2006-01-06)
  85. Akolkar, Rahul (06 Jan 2006). "[RESULT][VOTE] Move combo to dormant". Commons Developer List (Mailing list) (англ.). Архивировано 7 ноября 2015. Дата обращения: 3 декабря 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  86. Henri Yandell (bayard). Revision 354665. moving to dormancy. Apache SVN (2005-12-07)
  87. Henri Yandell (bayard). Revision 267383. Dormant under the new rules. Apache SVN (2005-09-03)
  88. Henri Yandell (bayard). Revision 267384. Dormant under the new rules. Apache SVN (2005-09-03)
  89. Rahul P Akolkar. Revision 366581. Move feedparser to dormant. Apache SVN (2006-01-06)
  90. Steitz, Phil (01 Jan 2006). "[all] Moving a component to dormant". Commons Developer List (Mailing list) (англ.). Архивировано 30 сентября 2015. Дата обращения: 29 ноября 2012. {{cite mailing list}}: Проверьте значение даты: |date= (справка)
  91. Henri Yandell (bayard). Revision 267385. Dormant under the new rules. Apache SVN (2005-09-03)
  92. Henri Yandell (bayard). Revision 267411. Dormant under the new rules. Apache SVN (2005-09-03)
  93. Henri Yandell (bayard). Revision 267388. Dormant under the new rules. Apache SVN (2005-09-03)
  94. Henri Yandell (bayard). Revision 267389. Dormant under the new rules. Apache SVN (2005-09-03)
  95. Henri Yandell (bayard). Revision 267390. Dormant under the new rules. Apache SVN (2005-09-03)
  96. Henri Yandell (bayard). Revision 267391. Dormant under the new rules. Apache SVN (2005-09-03)
  97. Henri Yandell (bayard). Revision 263962. JRCS officially went to Codehaus. Apache SVN (2005-08-28)
  98. Henri Yandell (bayard). Revision 267392. Dormant under the new rules. Apache SVN (2005-09-03)
  99. Rahul Akolkar (rahul). Revision 389670. Moving latka to dormant. Apache SVN (2006-03-29)
  100. 1 2 Colebourne, Stephen (14 Mar 2006). "[VOTE][RESULT] Demote Latka and Resources to Dormant". Commons Developer List (Mailing list) (англ.). Архивировано 15 сентября 2020. Дата обращения: 1 апреля 2013.
  101. Henri Yandell (bayard). Revision 267393. Dormant under the new rules. Apache SVN (2005-09-03)
  102. Henri Yandell (bayard). Revision 267394. Dormant under the new rules. Apache SVN (2005-09-03)
  103. Henri Yandell (bayard). Revision 267395. Dormant under the new rules. Apache SVN (2005-09-03)
  104. Henri Yandell (bayard). Revision 267396. Dormant under the new rules. Apache SVN (2005-09-03)
  105. Rahul Akolkar (rahul). Revision 389671. Moving resources to dormant. Apache SVN (2006-04-29)
  106. Henri Yandell (bayard). Revision 267397. Dormant under the new rules. Apache SVN (2005-09-03)
  107. Henri Yandell (bayard). Revision 267398. Dormant under the new rules. Apache SVN (2005-09-03)
  108. Henri Yandell (bayard). Revision 267399. Dormant under the new rules. Apache SVN (2005-09-03)
  109. Henri Yandell (bayard). Revision 354664. moving to dormancy. Apache SVN (2005-12-07)
  110. Henri Yandell (bayard). Revision 267400. Dormant under the new rules. Apache SVN (2005-09-03)
  111. Henri Yandell (bayard). Revision 267401. Dormant under the new rules. Apache SVN (2005-09-03)
  112. Henri Yandell (bayard). Revision 267402. Dormant under the new rules. Apache SVN (2005-09-03)
  113. Henri Yandell (bayard). Revision 267403. Dormant under the new rules. Apache SVN (2005-09-03)
  114. Henri Yandell (bayard). Revision 267404. Dormant under the new rules. Apache SVN (2005-09-03)
  115. Zeigermann, Oliver (15 Dec 2004). "[ANNOUNCE] Commons Transaction 1.0 final released". Commons Developer List (Mailing list) (англ.). Архивировано 5 марта 2016. Дата обращения: 26 октября 2013.
  116. Zeigermann, Oliver (28 Mar 2010). "Future of Transaction subproject". Commons Developer List (Mailing list) (англ.). Архивировано 5 марта 2016. Дата обращения: 26 октября 2013.
  117. Oliver Zeigermann (ozeigermann). Revision 934749. Transaction => Dormant Архивная копия от 27 апреля 2011 на Wayback Machine. Apache SVN (2010-04-16)
  118. Pemberton, Niall (16 Apr 2010). "Re: Future of Transaction subproject". Commons Developer List (Mailing list) (англ.). Архивировано 30 октября 2015. Дата обращения: 26 октября 2013.
  119. Henri Yandell (bayard). Revision 267405. Dormant under the new rules. Apache SVN (2005-09-03)
  120. Henri Yandell (bayard). Revision 267406. Dormant under the new rules. Apache SVN (2005-09-03)
  121. Henri Yandell (bayard). Revision 267407. Dormant under the new rules. Apache SVN (2005-09-03)
  122. Henri Yandell (bayard). Revision 267408. Dormant under the new rules. Apache SVN (2005-09-03)
  123. Guillaume Rousseau. 3% of open source software ever created use Apache Commons libraries (англ.). fossbazaar.org (15 апреля 2010). Дата обращения: 24 февраля 2013. Архивировано 6 июля 2010 года.
  124. Developer tools — Android Libraries Statistics Архивная копия от 22 января 2013 на Wayback Machine. www.appbrain.com
  125. Дмитрий Шурупов. Французское космическое агентство выбрало Apache Commons Math. nixp.ru (23 марта 2011). Дата обращения: 24 февраля 2013. Архивировано из оригинала 6 марта 2016 года.

Литература[править | править код]

Ссылки[править | править код]

  • 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)