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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам