McDonnell Douglas AH-64 Apache
- 1 year ago
- 0
- 0
Apache Commons — проект фонда Apache Software Foundation (далее ASF), имеющий своей целью разработку и поддержку открытого программного обеспечения повторного использования на языке Java , то есть библиотек Java. В более узком смысле Apache Commons — это «большая коллекция маленьких Java-утилит» . Apache Commons ранее являлся частью проекта Jakarta Project и носил название «Jakarta Commons» . Apache Commons содержит набор библиотек утилит Java самого разного назначения, доступных по лицензии Apache License , и использующихся во многих других проектах с открытым исходным кодом. Утилиты проекта Apache Commons лежат в основе таких проектов как Apache Tomcat , Struts , Hibernate и др. По мнению Гейра Магнуссона Джуниора ( англ. Geir Magnusson Jr ), члена совета директоров ASF , бывшего техническим директором и лидером в таких компаниях как 10gen , Joost , , Bloomberg и Intel , Apache Commons стал «местом, где программисты на языке Java в первую очередь ищут помощи, чтобы решить общие проблемы серверного и клиентского программирования» .
Согласно уставу проекта, проект должен «создавать и поддерживать пакеты, написанные на языке 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." ) .
История Apache Commons восходит к 1999 году, когда, в июне, была зарегистрирована ранее известная под названием «Apache Group» некоммерческая организация Apache Software Foundation (далее ASF) . Основным проектом, поддерживаемым фондом, был Apache HTTPD Web Server , созданный между 1995 и 1999 гг. Одним из проектов Apache Software Foundation стал Jakarta Project (проект Jakarta), который являлся результатом сотрудничества компаний Sun Microsystems , IBM , Oracle и сообщества разработчиков веб-сервера (Apache HTTP Server). В начале 2001 года, в ходе работы в разных подпроектах проекта Jakarta, было замечено, что они часто реализовывают одну и ту же функциональность, а иногда копируют её друг у друга. Было накоплено множество полезного кода, который тем не менее было проблематично найти пользователям в виде простого отдельного пакета (библиотеки). После обсуждения данных проблем было решено создать проект Jakarta Commons , в котором начали активно создавать компоненты на Java, в основном на основе уже существующего кода. 19 марта 2001 Комитет проект-менеджмента Jakarta утвердил устав проекта , в котором оговаривались основные правила и условия работы в проекте . Согласно уставу, первые пакеты были основаны на существующей кодовой базе ASF, включая код работающий с источниками данных и пулами баз данных, с конфигурирациями XML , ресурсами сообщений, интернационализацией , JNDI и именованием, тестовыми наборами. Первым пакетом, вошедшим в состав Commons, был пакет Database Connection Pool. В период 2001—2005 был разработан основной набор библиотек, ставший базисом для Apache Commons. К 2003 секция proper уже содержала 21 компонент , к 2004 — 28 компонентов , а к 2005 — 29 компонентов . 19 мая 2004 была утверждена новая версия устава, с поправками в старый вариант . В первом составе проекта Commons было 10 участников с правом внесения изменений, к 2004 году их было уже более 80 . 20 июня 2007 Apache Board (Совет Apache) по результатам анонимного голосования выделил проект Commons из состава проекта Jakarta, после чего Commons стал проектом верхнего уровня в иерархии Apache (то есть отдельным независимым проектом) и стал называться Apache Commons . К концу 2012 года в proper уже было 43 активных компонента.
В иерархии проектов Apache Software Foundation Apache Commons является проектом «верхнего уровня». В свою очередь, Commons разбивается на множество проектов «второго уровня». Каждый проект второго уровня имеет свой сайт, каталог в общем репозитории исходного кода , каталог в общей системе отслеживания ошибок и имеет своей целью разработку одного одноимённого компонента (библиотеки) Java. Активные проекты имеют несколько постоянных участников, неактивные проекты могут вообще не иметь постоянных участников. Компоненты представляют собой JAR файлы , как правило не превышающие по объёму 1 Мб . Подпроекты Commons делятся на 3 секции: proper (корректные), sandbox (песочница) и dormant (спящие). Секция proper — основная секция проектов, которая на октябрь 2012 года включала 43 проекта. Компоненты секции proper поддерживаются в рабочем состоянии, и обновляются, сохраняя свои интерфейсы насколько возможно неизменными, чтобы не создавать проблемы существующим пользователям. Секция sandbox предназначена для создания новых проектов и подготовки их к включению в секцию proper или в другие проекты apache. В октябре 2012 года секция sandbox включала 16 проектов. Доступ для внесения изменений в проекты этой секции открыт для всех зарегистрированных участников Apache. В секцию Dormant переводят старые проекты, в которых была замечена слишком низкая активность по внесениям изменений, или полное отсутствие активности, и которые ASF не планирует в будущем обновлять (выпускать новые версии). К концу 2012 года туда было включено 15 проектов.
Пояснения к таблице:
Название | Сайт | Статус | Первый релиз | Описание |
---|---|---|---|---|
Attributes | proper | 2004-08-15, v2.1 | Поддержка атрибутов в стиле C#/.Net | |
BCEL | proper | 2001-12-12, v5.0 | Byte Code Engineering Library. Манипуляция java-классами | |
BeanUtils | proper | 2001-07-14, v1.0 | Удобные для использования обертки над пакетами java.lang.reflect и java.beans (API для отражения и самодиагностики) | |
Betwixt | proper | 2004-07-03, v0.5 | Связывание JavaBeans с XML-документами | |
BSF | proper | 2006-10-06, v2.4.0 | Bean Scripting Framework. Интерфейс для скриптовых языков | |
Chain | proper | 2004-12-09, v1.0 | Реализация паттерна Цепочка обязанностей | |
CLI | proper | 2002-11-06, v1.0 | Command Line Interface. Парсер аргументов командной строки | |
Codec | proper | 2003-05-11, v1.1 | Кодирование и декодирование алгоритмов, таких как Base64 , Hex , ; и URL . | |
Collections | proper | 2002-04-05, v2.0 | Расширение и дополнение Java Collections Framework . | |
Compress | proper | 2010-08-24, v1.1 | API для работы с файлами , cpio , Unix dump , tar , zip , gzip , XZ , и bzip2 . | |
Configuration | proper | 2004-10-11, v1.0 | Чтение файлов конфигурации и настроек различных форматов | |
CSV | proper | планируется v1.0 | Чтение и запись файлов табличных данных формата CSV (от англ. Comma-Separated Values — значения, разделенные запятыми). | |
Daemon | proper | 2004-01-13, v1.0 | API для создания сервисов на платформе WIN32 и демонов на платформе UNIX | |
DBCP | proper | 2002-08-12, v1.0 | Database connection pooling services. Создание пула соединений к базе данных, в котором каждое соединение может последовательно обслуживать множество клиентов. | |
DbUtils | proper | 2003-11-11, v1.0 | Обёртка над пакетом Java JDBC для упрощения кода. | |
Digester | proper | 2002-01-12, v1.2 | Обработка файлов конфигурации формата xml , построение дерева объектов на основе структуры xml. Надстройка над парсером xml SAX. | |
Discovery | proper | 2006-12-03, v0.4 | Обнаружение реализаций для подключаемых интерфейсов (то есть нахождение классов по заданному Java-интерфейсу). | |
EL | proper | 2003-06-20, v1.0 | Интерпретатор JSP 2.0 Expression Language (Язык Выражений). | |
proper | 2005-09-27, v1.0 | API для отправки электронной почты. | ||
Exec | proper | 2009-03-26, v1.0 | Исполнение внешних процессов из приложения Java и работа с переменными окружения. | |
FileUpload | proper | 2003-06-24, v1.0 | Пересылка файлов на сервер через веб-приложение, парсинг HTTP-заголовков, соответствующих . | |
Functor | proper | нет | Объект-функция, для использования в паттернах Посетитель , Стратегия , Цепочка обязанностей и др. В сентябре 2005 был переведен в Dormant , а в сентябре 2011 переведен в Proper . | |
Imaging (Sanselan) | proper | нет | Библиотека для работы с изображениями | |
IO | proper | 2004-05-13, v1.0 | Утилиты ввода-вывода | |
JCI | proper | 2007-06-18, v1.0 | Java Compiler Interface. Интерфейс компилятора Java. Используется для компилирования Java из Java-приложений. | |
JCS | proper | 2007-06-05, v1.3 | Java Caching System. Кэширование данных различной природы для ускорения приложений. | |
Jelly | proper | 2005-06-16, v1.0 | Скриптовый механизм, основанный на XML. Превращение XML в исполняемый код. | |
Jexl | proper | 2004-09-07, v1.0 | Java Expression Language. Язык выражений, расширяющий язык JSTL. Синтаксис похож на ECMAScript и shell-script. | |
JXPath | proper | 2002-06-25, v1.0 | Интерпретатор языка выражений XPath. Манипулирование классами JavaBeans . | |
Lang | proper | 2002-10-04, v1.0 | Дополнительная функциональность, расширяющая java.lang | |
Launcher | proper | 2004-08-22 v1.1 | Кроссплатформенный стартер приложений | |
Logging | proper | 2002-08-13, v1.0.1 | Обёртка над множеством реализаций логирования. Тонкий мост между приложением и библиотекой логирования. | |
Math | proper | 2004-12-09, v1.0 | Математические и статистические функции | |
Modeler | proper | 2002-04-30, v1.0 | Создание Model MBeans, совместимых с JMX | |
Net | proper | 2003-02-23, v1.0 | Реализации различных Интернет-протоколов (на клиентской стороне) | |
OGNL | proper | 2011-09-22, v4.0 | Object-Graph Navigation Language. Язык навигации по графу объектов. Установка и получение свойств Java-объектов. Более мощная альтернатива для BeanUtils и EL/JSTL. | |
Pool | proper | 2002-05-04, v1.0 | API для создания пулов объектов | |
Primitives | proper | 2003-11-05, v1.0 | Работа с простыми типами данных и коллекциями. | |
Proxy | proper | 2008-03-06, v1.0 | Создание динамических прокси | |
RNG | proper | Генераторы случайных чисел | ||
SCXML | proper | 2006-07-28, v0.5 | State Chart XML. Машина состояний ( конечный автомат ), определённая документом SCXML. | |
Transaction | proper | 2004-12-15, v1.0 | Многоуровневые блокировки, транзакционные коллекции, транзакционный доступ к файлам | |
Validator | proper | 2002-11-01, v1.0 | Фреймворк для проверки правильности данных с возможностью указания правил в XML-файле | |
VFS | proper | 2006-12-30, v1.0 | Virtual File System. Виртуальная файловая система, обращающаяся с обычными файлами, FTP, SMB, ZIP и т. п. как с единой логической файловой системой | |
benchmark | нет | dormant | нет | Тестирование производительности Java-кода (с возможностью включения/выключения во время исполнения). Не получил развития из-за существования достойных аналогов. Переведен в dormant в декабре 2005 , пролежав в sandbox меньше года. |
Cache | dormant | нет | Кэширование объектов. API для хранения/извлечения объектов на основе ключа. Не получил развития, так как был вытеснен компонентами Stratum, JCS, EHCache и др., и кроме того зачастую может быть замещён классом LRUMap из Commons Collections . Переведен в dormant в сентябре 2005 . | |
Clazz | dormant | нет | Расширенный вариант java.lang.Class, который позволяет изменять определение класса во время исполнения. Предназначен для обработки Java-бинов в JDK при работе с классами List и Map и предоставляет альтернативу java.beans.Introspector. Переведен в dormant в сентябре 2005 . | |
Codec-multipart | нет | dormant | нет | Полезен для веб-браузера, написанного на Java. Позволяет закодировать набор файлов и пары имя/значение в формате multipart/form-data (по протоколу, описанному в RFC2388 ). Переведен в dormant в сентябре 2005 , пролежав в Sandbox полтора года. |
Combo | нет | dormant | нет | Commons Combo, он же Commons Core. Проект, который так и не вышел за рамки обсуждения, начатого в августе 2003 . Предполагалось, что это будет сборка нескольких часто используемых компонентов Commons в один общий пакет JAR, или инструмент для создания такой сборки самим пользователем. В январе 2006 переведен в dormant . |
Contract | dormant | нет | API для контрактного программирования в Java. Переведен в dormant в декабре 2005 после 6 месяцев отсутствия активности в проекте | |
Convert | dormant | нет | Конвертация объектов одного типа в другой. Переведен в dormant в сентябре 2005 . | |
Events | dormant | нет | Запуск и обработка событий. Декораторы над классами Java Collections Framework , которые также запускают события. Переведен в dormant в сентябре 2005 . | |
Feedparser | dormant | нет | Парсер лент типа RSS , Atom и т. п. Переведен в dormant из proper в январе 2006 | |
Filters | нет | dormant | нет | Сервлетные фильтры разного назначения для веб-приложений. Используют Servlet 2.3 API. Могут быть подключены в веб-приложения, как плагины. Переведен в dormant в сентябре 2005 . |
Grant | нет | dormant | нет | Небольшой набор хаков для Ant , чтобы лучше/иначе управлять путями и опциями. Переведен в dormant в сентябре 2005 |
Http | нет | dormant | нет | Содержит простые утилиты для работы с протоколом HTTP (детектор браузера, парсер заголовка). Переведен в dormant в сентябре 2005 . |
Jex | нет | dormant | нет | Механизм плагинов для интерпретаторов языков выражений. Изначально включает два языка: JXPath и Bexl. Переведен в dormant в сентябре 2005 . |
JJar | dormant | нет | Jakarta JAR Archive Repository. Попытка создать сервис наподобие CPAN для Java-сообщества. Состоит из 2-х частей: распределённый репозиторий и набор инструментов для работы с репозиториями и управления пакетами. Переведен в dormant в сентябре 2005 . | |
JPath | нет | dormant | нет | Механизм для использования языка XPath с графами обыкновенных объектов (JavaBeans, коллекции (контейнеры), массивы, объекты map и примитивные значения. Опирается на JAXP и реализацию интерпретатора XPath. Переведен в dormant в сентябре 2005 . |
Jrcs | нет | dormant | нет | Java RCS Tools. Парсинг и манипулирование файлами-архивами RCS наподобие Revision Control System и Concurrent Versions System . Зависит от пакета ORO. Пакетом занимался только один разработчик, который так и не смог создать для него сайт, привлечь новых участников, завершить разработку и выпустить релиз. В августе 2005 Jrcs официально перешёл в Codehaus , откуда он потом бесследно исчез, а кодовая база на сайте ASF переведена в Dormant . |
Jux | нет | dormant | нет | Commons JUnit Extensions. Предназначен для создания тестов. Зависит от junit. Переведен в dormant в сентябре 2005 . |
Latka | dormant | нет | Инструмент функционального тестирования HTTP, использующий XML для задания тестов. Для автоматизированного QA. Переведен в dormant в марте 2006 | |
Mapper | dormant | нет | Общий интерфейс ( мост ) над технологией маппирования Java-объектов, выбранной проектом. Поддерживает техники: JDBC, JDO, EJB, Hibernate, iBatis, XML. Переведен в dormant в сентябре 2005 | |
Messenger | dormant | нет | Фреймворк для облегчения работы с Java Message Service . Переведен в dormant в сентябре 2005 | |
Periodicity | нет | dormant | нет | Построенная на веб-интерфейсе календарная система. Переведена в dormant в сентябре 2005 |
Reflect | нет | dormant | нет | Java Reflection Framework. API для доступа к классам, методам и членам динамически во время исполнения. Переведен в dormant в сентябре 2005 |
Resources | dormant | нет | Легковесный фреймворк для определения и поиска локализованных строк, завязанных на java.util.Locale. Переведен в dormant в марте 2006 г. | |
Rupert | нет | dormant | нет | Набор утилит для использования в разработке веб-приложений на основе сервлетов. Переведен в dormant в сентябре 2005 |
Scaffold | dormant | нет | Тулкит для построения веб-приложений. Переведен в dormant в сентябре 2005 | |
Services | нет | dormant | нет | Service Manager. Универсальный мост, соединяющий центральное приложение (например, Jakarta Struts) с внешними модулями. Переведен в dormant в сентябре 2005 |
Servlet | нет | dormant | нет | Утилиты для разработки сервлетов . Переведен в dormant в декабре 2005 |
Simplestore | нет | dormant | нет | Интерфейс для хранения и извлечения объектов. Переведен в dormant в сентябре 2005 |
Tbm | нет | dormant | нет | Thread Benchmark. Фреймворк для тестирования многопоточных приложений. Поиск узких мест многопоточности (threading bottlenecks) и синхронизации (synchronization bottlenecks). Переведен в dormant в сентябре 2005 |
Test | нет | dormant | нет | Утилиты для тестирования. Переведен в dormant в сентябре 2005 |
Threading | нет | dormant | нет | Утилитные классы и интерфейсы для координации и коммуникации потоков между собой в многопоточных серверных приложениях. Переведен в dormant в сентябре 2005 |
ThreadPool | dormant | нет | Фреймворк для работы с пулами потоков и асинхронного выполнения задач. Вытеснен библиотекой Доуга Леа util.concurrent, предшественником пакета java.util.concurrent, входящего в состав JDK. Переведен в dormant в сентябре 2005 | |
Transaction | нет | dormant | 2004-12-15, v1.0 | Утилитные классы для транзакционного программирования на Java (многоуровневые блокировщики, коллекции, транзакционный доступ к файлам). В марте 2010 основной разработчик отказался от продолжения работы над проектом, обосновав это тем, что, по его мнению, невозможно построить транзакционную файловую систему поверх обычной . Переведен в dormant в апреле 2010 Transaction — это первый компонент Commons, который был переведен в dormant из секции proper, то есть компонент, имеющий релизы. До него в dormant переводились только компоненты из sandbox . |
Workflow | dormant | нет | Компонент для связи компонентов и модулей Java-приложения при помощи скриптов (концепция «Композиция» приложения). Переведен в dormant в сентябре 2005 | |
Xmlio | dormant | нет | Импортирование/экспортирование XML в/из Java-приложений. Переведен в dormant в сентябре 2005 | |
Xmlunit | нет | dormant | нет | Переведен в dormant в сентябре 2005 |
Xo | нет | dormant | нет | Компонент . Переведен в dormant в сентябре 2005 |
Согласно утверждению Гийома Руссо (директор компании Antelink, поддерживающей Antepedia, крупнейший онлайн-справочник и поисковик компонентов с открытым исходным кодом ), 3 % программного обеспечения с открытым исходным кодом используют библиотеки Apache Commons . В пятёрку самых популярных компонентов входят компоненты Logging, Collections, Lang, BeanUtils, Httpclient.
По статистике сайта AppBrain.com (онлайн-библиотека приложений Android), компоненты Apache Commons Codec и IO используются более чем в 1 % приложений на платформе Android , а Logging и Lang использует более 0,5 % приложений Android .
Библиотека Apache Commons Math была выбрана в 2011 году французским космическим агентством CNES (Centre National d'Études Spatiales) в качестве базиса для разработки динамичных систем космических полётов, известных как проект Сириус (Sirius) .
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)
{{
cite mailing list
}}
:
Проверьте значение даты:
|date=
(
справка
)