Статьи

Patching Weld 3 в WildFly 8.2 — Первый экспериментальный RI Java EE 8

Java EE 8 движется, и несколько новых компонентов JSR были поданы. JSR 365 определит спецификацию для CDI 2.0. Red Hat уже начала работу над прототипом реализации в Weld 3, и Alpha3 была выпущена недавно .

Сервер приложений, совместимый с Java EE 8 от Red Hat, будет WildFly, где будут реализованы все различные технологии. В то же время, как вы пробуете эти ранние экспериментальные релизы?

Технический совет № 29 показал, как установить патч WildFly 8.x из предыдущего выпуска. Этот совет будет использовать этот механизм для установки Weld 3 Alpha3 в WildFly 8.2. Вы также можете загрузить Weld 3 Alpha3 Standalone или Weld 3 Alpha3 в качестве патча для WildFly 9.0 Alpha1 .

Инструкции довольно просты:

  1. Скачайте и распакуйте WildFly 8.2 :
    1
    2
    http://download.jboss.org/wildfly/8.2.0.Final/wildfly-8.2.0.Final.zip
    unzip wildfly-8.2.0.Final.zip
  2. Скачать патч Weld 3 Alpha3 для WildFly 8.2 :
    1
    curl -L -o weld3-alpha3-patch-wildfly8.2.zip http://sourceforge.net/projects/jboss/files/Weld/3.0.0.Alpha3/wildfly-8.2.0.Final-weld-3.0.0.Alpha3-patch.zip/download
  3. Примените патч как (также доступный в README, включенном в патч):
    1
    2
    3
    4
    5
    ./wildfly-8.2.0.Final/bin/jboss-cli.sh --command="patch apply ./weld3-alpha3-patch-wildfly8.2.zip"
    {
        "outcome" : "success",
        "result" : {}
    }
  4. Запустите WildFly:
    1
    ./wildfly-8.2.0.Final/bin/standalone.sh
  5. Запустите простой тест CDI из javaee7-samples :
    1
    mvn -f cdi/nobeans-xml/pom.xml test -Dwildfly-remote-arquillian

    и увидеть вывод в консоли WildFly как:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    20:53:30,434 INFO  [org.jboss.as.repository] (management-handler-thread - 1) JBAS014900: Content added at location /Users/arungupta/tools/weld3/wildfly-8.2.0.Final/standalone/data/content/4c/c6675b4f1fb33fe40dda3f94ac4979b3e2a4d0/content
    20:53:30,453 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "test.war" (runtime-name: "test.war")
    20:53:30,878 INFO  [org.jboss.weld.deployer] (MSC service thread 1-5) JBAS016002: Processing weld deployment test.war
    20:53:30,953 INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-5) HV000001: Hibernate Validator 5.1.3.Final
    20:53:31,131 INFO  [org.jboss.weld.deployer] (MSC service thread 1-5) JBAS016005: Starting Services for CDI deployment: test.war
    20:53:31,163 INFO  [org.jboss.weld.Version] (MSC service thread 1-5) WELD-000900: 3.0.0 (Alpha3)
    20:53:31,195 INFO  [org.jboss.weld.deployer] (MSC service thread 1-9) JBAS016008: Starting weld service for deployment test.war
    20:53:32,141 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-15) JBAS017534: Registered web context: /test
    20:53:32,178 INFO  [org.jboss.as.server] (management-handler-thread - 1) JBAS018559: Deployed "test.war" (runtime-name : "test.war")
    20:53:33,454 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-6) JBAS017535: Unregistered web context: /test
    20:53:33,464 INFO  [org.jboss.weld.deployer] (MSC service thread 1-16) JBAS016009: Stopping weld service for deployment test.war
    20:53:33,490 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-12) JBAS015877: Stopped deployment test.war (runtime-name: test.war) in 40ms
    20:53:33,497 INFO  [org.jboss.as.repository] (management-handler-thread - 1) JBAS014901: Content removed from location /Users/arungupta/tools/weld3/wildfly-8.2.0.Final/standalone/data/content/4c/c6675b4f1fb33fe40dda3f94ac4979b3e2a4d0/content
    20:53:33,498 INFO  [org.jboss.as.server] (management-handler-thread - 1) JBAS018558: Undeployed "test.war" (runtime-name: "test.war")

    Обратите внимание, что версия Weld «3.0.0 (Alpha 3)» отображается соответствующим образом в журналах.

С точки зрения возможностей, вот что доступно на данный момент:

  • Декларативное упорядочение методов-наблюдателей с использованием @Priority
  • Возможность расширения вето и изменения метода наблюдателя
  • Поддержка повторяющихся аннотаций Java 8 в качестве квалификаторов и привязок перехватчиков
  • Улучшенный API AnnotatedType
  • Асинхронные события
  • Упрощенная настройка свойств, специфичных для сварки
  • Гуава больше не используется внутри

Более подробная информация, включая примеры кода, объясняется в Выпуске Weld 3.0.0 Alpha1 и обновлении Weld 3 . Весь прототип API находится в пакете org.jboss.weld.experimental , что указывает на раннюю природу.

Вот некоторые ресурсы для вас:

Создан репозиторий образцов Java EE 8 и начнется добавление туда некоторых образцов CDI 2.0, следите за обновлениями.

Наслаждайтесь!