Можно ли контролировать сканирование классов в Weld?
Я играл с Weld-SE (Java SE) и заметил, что если в пути к классам много JAR, время запуска JVM запускается через несколько секунд.
Не существует способа указать/ограничить путь сканирования как шаблон пакета или шаблон пути, как в Apache Ant или AspectJ?
PS: Регистрация на форуме Weld просто не работает - он продолжает говорить "ваш пароль тривиален"
Ответы
Ответ 1
Начиная с сварного шва 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>
Ответ 2
Вы можете с CDI 1.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>
Ответ 3
Хорошие вопросы, но я не думаю, что это возможно. Каждый архив проверяется на beans.xml
по спецификации.