Одной из красавиц с Java EE 6 является новая инфраструктура инъекций зависимостей - CDI с эталонной реализацией Weld, которая побудила нас начать миграцию внутри JSR-330 в агностической реализации, с явной целью: иметь замороженную ядро, а затем добавлять дополнительные банки, предоставляя новые модули, заменяющие функциональность в ядре.Каковы лучшие отладочные трюки с Weld/CDI?
Я сейчас в процессе создания вышеуказанной работы с Weld, и, честно говоря, слишком много волшебства происходит за крышками. Либо он работает, либо нет, и по умолчанию он не очень помогает, что происходит, чтобы вы могли выяснить, что не так, и исправить его.
Я хотел бы ожидать, что есть переключатели для переключения, которые могут легко включить такие вещи, как:
- Что Classpath Entries сканируются и где? Каков был результат?
- Какие бобы доступны для инъекций, для которых класс?
- Что привело к тому, что данный компонент не был рассмотрен позже? Данная банка?
Другими словами, мне нужно более подробно рассмотреть процесс принятия решения. По какой-то причине это не так необходимо с Guice, возможно потому, что существует гораздо меньше магии, и, возможно, потому, что сообщения об ошибках очень хорошие.
Что вы делаете, чтобы отлаживать приложения Weld и насколько это помогает?
Я не привязан прямо к серверу приложений. Это чертежи о том, как сделать «замороженный ядро ядра + дополнительный баннер функциональности» в каждом поставщике JSR-330, который я сейчас делаю для CDI. Имеет ли OpenWebBeans лучшую отчетность об ошибках? Вы взглянули на реализацию CanDI в Resin? Моя конфигурация регистрации может обрезать журналы DEBUG, я посмотрю. –
У меня не было опыта работы с OWB или CanDI. Только Свард, и не слишком много на самом деле. – Bozho
OpenWebBeans, например. регистрирует отсканированные файлы JAr. Если вы пропустите что-то, создайте проблему JIRA. Они очень новаторские, и я предполагаю, что они будут реализовывать такие функции. –