Можно ли управлять сканированием classpath в Weld?

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

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

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


person Ashwin Jayaprakash    schedule 18.08.2011    source источник


Ответы (3)


Начиная со сварки 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>
person Dar Whi    schedule 21.08.2011

Вы можете с 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>
person Otávio Garcia    schedule 21.01.2014

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

person Bozho    schedule 21.08.2011
comment
думаю, вам пора удалить этот ответ, @Божо: предыдущий вполне действителен. - person Riduidel; 12.03.2012
comment
@Riduidel спасибо. Я думал удалить его, но в соответствии со спецификацией CDI это невозможно. Weld — это всего лишь одна реализация. Я проголосовал за другой ответ, так как он практически наиболее применим. - person Bozho; 12.03.2012
comment
Действительно, я забыл нестандартный аспект, спасибо за объяснение. - person Riduidel; 12.03.2012