Apache Excalibur
Последнее изменение этой страницы: 14:12, 21 января 2019.
![]() | |
Разработчики: | The Apache Software Foundation |
---|---|
Постоянный выпуск: | 2.2.3 / 5 July 2007 года[Источник 1] |
Состояние разработки: | не активное |
Написана на: | Java |
Операционная система: | Кросс-платформенное |
Локализация: | Английский язык |
Тип ПО: | IoC Framework |
Веб-сайт |
excalibur |
Apache Excalibur – проект Apache, предоставляющий набор библиотек для компонентного программирования на Java. Является продолжением проекта Apache Avalon, закрывшегося в 2004. Проект Apache Excalibur был закрыт в 2010. Его код был унаследован проектом Apache Attic.
Содержание
О продукте
Excalibur – это платформа для создания компонентных и контейнерных приложений, построенных на ключевых шаблонах проектирования, таких как Инверсия контроля и Разделение соглашений, доступных для платформы Java. Вы можете использовать Excalibur для создания огромного количества различных приложений, начиная со Swing приложений, заканчивая сложными серверными программами. Фреймворк Avalon (ядро Excalibur) часто используется в качестве основы для крупного проекта или платформы. К таким приложениям и платформам относятся: Apache Cocoon, Apache James, and the Keel Framework.
Обзор
Чего не стоит ждать от Excalibur?
Excalibur не является частью J2EE стека. Excalibur не может использоваться для разработки J2EE приложений и даже использоваться для создания J2EE сервера. Excalibur является очень простым и не содержит многих спецификаций J2EE по умолчанию. Однако, возможно написать J2EE приложение, которое использует Excalibur (такое как сервлет) или использовать J2EE сервер в контейнере, основанном на Excalibur.
Что такое Excalibur?
- Платформа Excalibur включает в себя:
- Фреймворк ядра для компонентного программирования (Avalon фреймворк)
- IoC контейнер (Fortress)
- Набор контейнерных утилит (ContainerKit)
- Библиотека компонентов (Cornerstone)
При работе с Excalibur можно использовать один или несколько вышеуказанных компонентов.
Кому может быть полезен Excalibur?
Пользователей Excalibur можно разделить на следующие категории:
- Обычные пользователи: используют сторонние приложения, которые задействуют Excalibur или Avalon неявно для них. Пользователи имеют возможность расширять эти приложения.
- Разработчики компонентов: разрабатывают компоненты для дальнейшего запуска их внутри контейнера Excalibur или Avalon. Разработчики имеют возможность сборки компонентов в большие блоки приложений, а также размещения этих блоков и контейнеров в качестве законченных приложений.
- Разработчики контейнеров: расширяют существующие контейнеры Excalibur и Avalon, разрабатывают новые Avalon контейнеры.
Существуют определенные технологии и концепции, которые способствуют повсеместному использованию и развитию Excalibur. Если вы не знакомы со следующими понятиями, пожалуйста, ознакомьтесь с ними:
- Java Platform
- InversionOfControl
- SeparationOfConcerns
- ComponentOrientedProgramming
Почему стоит использовать Excalibur?
Для начала необходимо ответить на более общий вопрос: нужно ли мне использовать контейнеры? Насколько хорошо контейнеры подойдут для моего приложения? Чтобы понять для кого Excalibur является наиболее полезным, рассмотрим ряд задач, решаемых при помощи Excalibur:
- Объединение компонентов
- Управление зависимостями
- Сокрытие реализации
- Управление жизненным циклом
Как использовать Excalibur?
Необходимые дополнительные пакеты:
- Apache Commons Logging (http://jakarta.apache.org/commons/logging/)
- Apache Commons Collections (http://jakarta.apache.org/commons/collections/)
- Apache Log4J (http://logging.apache.org/log4j/docs/)
- Apache Bytecode Engineering Library BCEL (http://jakarta.apache.org/bcel/)
Excalibur Fortress
Excalibur включает в себя контейнер на базе Avalon - Fortress.[Источник 2] Fortress содержит фреймворк, способный помочь создавать пользовательские Avalon-контейнеры. Он поддерживает асинхронное управление экземплярами компоненов, высокую масштабируемость, облегчает обслуживание кода и легко внедряется в различные среды. Fortress заменяет более старый контейнер Excalibur Component Manager (ECM).
Особенности
- Асинхронное управление компонентами
Большинство функций управления компонентами не занимают много времени на выполнение, но затрачиваемое время прямо влияет на то, как много запросов система может обрабатывать в одно время. По этой причине для управления компонентами используется CommandManager из пакета Event. При перемещении всех функций управления в ограниченное число потоков сокращается время работы в критически важных процессах.
- Увеличенный жизненный цикл
Fortress поддерживает экспериментальную возможность увеличения жизненного цикла компонента в специфичной приложению манере. Если эта особенность подтвердит свою полезность, она будет добавлена в остальные контейнеры на базе Avalon.
- Инструменты
Fortress интегрирована с пакетом инструментов так, что есть возможность в режиме реального времени наблюдать за состоянием системы. В систему добавлены очки для каждого обработчика компонента так, что можно наблюдать как много экземпляров компонента обрабатывает каждый обработчик. Используя эту информацию можно лучше настроить контейнер.
- Доступная мета-информация
Вместо использования "ролевых" файлов для наблюдения за конфигурацией компонента, и какой тип имеет компонент, Fortress обеспечивает пользователя некоторыми инструментами, позволяющими наблюдать за данной информацией, используя java исходный код.
Источники
- ↑ Excalibur - Apache Excalibur - Downloads: Страница загрузки Apache Excalibur. // The Apache Software Foundation. [1997-2009]. Дата обновления: 31.07.2009. URL: http://excalibur.apache.org/download.cgi (дата обращения: 01.01.2019).
- ↑ Excalibur - Fortress - Overview: Обзор Excalibur Fortress. // The Apache Software Foundation. [1997-2009]. Дата обновления: 31.07.2009. URL: http://excalibur.apache.org/fortress/index.html (дата обращения: 01.01.2019).
ISSN 2542-0356
Следуй за Полисом
Оставайся в курсе последних событий
Лицензия
Если не указано иное, содержание этой страницы доступно по лицензии Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0, а примеры кода – по лицензии Apache 2.0. Подробнее см. Условия использования.