Можно ли контролировать сканирование пути к классу в Weld? - PullRequest
12 голосов
/ 19 августа 2011

Я играл с Weld-SE (Java SE) и заметил, что если в пути к классам много JAR-файлов, время запуска JVM составляет несколько секунд.

Нет ли способа указать / ограничить путь сканирования в виде шаблона пакета или шаблона пути, как в Apache Ant или AspectJ?

PS: Регистрация на форуме Weld просто не работает - он постоянно говорит "ваш пароль тривиален"

Ответы [ 3 ]

13 голосов
/ 21 августа 2011

Начиная со сварного шва 1.1.0, это возможно согласно Справочная документация по сварному шву :

<beans xmlns="http://java.sun.com/xml/ns/javaee" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:weld="http://jboss.org/schema/weld/beans" 
       xsi:schemaLocation="
          http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd
          http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd">
    <weld:scan>
        <weld:exclude name="mypackage.MyClass"/>
    </weld:scan>
</beans>
6 голосов
/ 21 января 2014

Вы можете с CDI 1.1. Первый ответ работает нормально, но этот фрагмент работает на любом провайдере:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
    version="1.1" bean-discovery-mode="all">

    <scan>
        <exclude name="my.cool.package" />

        <!-- you can exclude with condition -->
        <exclude name="my.cool.package.for.jodatime" />
            <if-class-not-available name="org.joda.time.LocalDate"/>
        </exclude>
    </scan>
</beans>
4 голосов
/ 21 августа 2011

Хорошие вопросы, но я не думаю, что это возможно.Каждый архив проверяется на beans.xml, по спецификации

...