Статьи

Weld 1.0.1 работает на GAE


За последние 24 часа команда Weld в JBoss выложила полную
версию второго кандидата на выпуск Weld 1.0.1. Weld является эталонной реализацией JBoss с открытым исходным кодом спецификации контекста и внедрения зависимостей (
CDI ), которая была утверждена всего несколько месяцев назад вместе со спецификацией Java EE 6. Первый релиз-кандидат 1.0.1 был опубликован только как артефакты в центральном репозитории Maven, но CR2 — это первый выпуск Weld 1.0.1 в форме полного распространения. Несмотря на незначительное изменение номера версии, Weld 1.0.1 включает в себя некоторые важные новые функции, такие как поддержка работы в Google App Engine, усиленная поддержка Java SE и улучшенный CDI TCK (комплект для совместимости технологий).

GAE Поддержка

В дополнение ко многим исправлениям ошибок и значительным улучшениям использования памяти, Weld 1.0.1 теперь имеет базовую поддержку для работы в масштабируемой инфраструктуре Google App Engine. Эта поддержка стала возможной благодаря сообществу сварщиков, которое определило доплаты, которые не позволили запустить сварку на GAE. Двигаясь вперед, разработчики Weld будут искать новые конфликты и разрешать их, чтобы Weld не
ограничивался только базовой поддержкой. Если вы хотите начать, в блоге JBoss уже размещена демонстрация
это показывает разработчикам, как избежать определенных ловушек и заставить их приложения CDE + JSF 2 работать и работать на GAE. Этот пост является первой частью серии руководств по GAE, в которой разработчики пройдут регистрацию в App Engine, установят плагин GAE SDK для Eclipse, будут управлять необходимыми библиотеками и конфигурациями CDI и JSF, а затем развернуты. Вы можете посмотреть пример приложения числовой сварки в
appspot для доказательства этой поддержки.

Weld SE

JBoss говорит, что поддержка Java SE — это то, что действительно отличает Weld от других CDI RI, таких как
Resin CanDI и Apache
OpenWebBeans., В Weld 1.0.1 CR2 было внесено несколько улучшений в поддержку Java SE. Теперь есть документированная поддержка перехватчиков и декораторов вместе с рефакторингом для использования стандартного события BeforeShutdown. Команда Weld говорит, что наиболее заметным улучшением поддержки Java SE является упрощение загрузочного API (
новый Weld () ). Пример ниже:

Weld weld = new Weld().initialize();
weld.instance().select(Foo.class).get();
weld.event().select(Bar.class).fire(new Bar());
weld.shutdown();

Weld CDI TCK

Версия 1.0.1 теперь будет включать в себя CDI TCK, который недавно получил множество улучшений благодаря команде Apache OpenWebBeans. Устраняя недостатки, такие как неработающие тесты и неверные интерпретации спецификаций, CDI TCK стал намного более надежным.  

Weld включен в JBoss AS 6 и Glassfish v3 (и в разработку WebProfile). Для пользователей JBoss AS на переднем крае (версия 6 M2)
снимки AS 6 позволят вам получить Weld 1.0.1 CR2 из коробки. Другой вариант — обновить установку JBoss AS 6, используя следующую команду из корня дистрибутива Weld:

JBOSS_HOME = / path / to / jboss-as-6 mvn -f jboss-as / pom.xml

Вот список преимуществ что CDI предлагает:

  • Улучшенный жизненный цикл для объектов с состоянием, привязанных к четко определенным контекстам
  • Типичный подход для внедрения зависимости
  • Взаимодействие с объектом через средство уведомления о событиях
  • Лучший метод для привязки перехватчиков к объектам
  • Новый перехватчик, который больше подходит для использования в решении бизнес-задач, называется декоратором
  • SPI для создания переносимых расширений контейнера.

CR2 теперь доступен для финальной стадии проверки. Команда Weld хотела бы получить как можно больше отзывов от сообщества открытого исходного кода до окончательного выпуска Weld 1.0.1 19 февраля. В дальнейшем команда Weld планирует в течение следующих трех месяцев создать следующую версию Weld (1.0.2), уделяя особое внимание производительности, масштабируемости и исправлению ошибок. Они также перенесут часть внимания команды на
разработку
Seam 3 .