Подключение к сканеру classpath WELD-SE

Я искал документацию по API сканера пути к классам WELD-SE, но не смог ее найти. Я пытаюсь обнаружить POJO с пользовательскими аннотациями в духе API-интерфейсов Servlet, WebSocket и JAX-RS. Есть ли способ сделать это с помощью WELD?

Я понимаю, что уже есть библиотеки, которые выполняют сканирование путей к классам, такие как Scannotation, FastClasspathScanner, Corn-CPS и т. д., но я пытаюсь сохранить этот проект компактным и не возражаю против тесной интеграции с WELD.


person KG6ZVP    schedule 18.10.2017    source источник


Ответы (1)


У Weld нет такого API. Сканер, который использует Weld, не является «достаточно универсальным» для этого. Он скорее специфичен для CDI, поскольку фокусируется на обнаружении архивов bean-компонентов.

Если POJO, которые вы ищете, на самом деле являются компонентами CDI, вы можете просто написать расширение CDI и наблюдать за фазой ProcessAnnotatedType<?>, которая будет уведомлять вас обо всех AnnotatedTypes CDI. Это можно еще больше сузить, используя @WithAnnotations, чтобы выбрать только AT с заданными аннотациями.

В определенных средах Weld также позволяет работать с Jandex, который вы, возможно, могли бы использовать в качестве другого инструмента. .

person Siliarus    schedule 19.10.2017