Jedną z piękności z Java EE 6 jest nowa struktura wtrysku zależności - CDI z implementacją Weld reference - która skłoniła nas do rozpoczęcia wewnętrznej migracji do JSR-330 w sposób agnostyczny, z wyraźnym celem, jakim jest możliwość mają słoik rdzenia, który jest zamrożony, a następnie jest w stanie dodać dodatkowe słoiki dostarczające nowe moduły zastępujące funkcje w słoiku rdzenia.Jakie są najlepsze triki do debugowania za pomocą Weld/CDI?
Jestem teraz w trakcie wykonywania powyższej pracy z Weld, i szczerze mówiąc, po prostu za dużo magii dzieje się za osłonami. Albo działa, albo nie, i domyślnie nie zapewnia dużej pomocy w tym, co się dzieje, aby można było zbadać, co jest nie tak i naprawić.
Spodziewam się, że istnieją przełącza się przełącznik, który można łatwo włączyć takie rzeczy jak:
- Co classpath wpisy są skanowane i gdzie? Jaki był rezultat?
- Jakie ziarna są dostępne do wstrzykiwań dla jakiej klasy?
- Co spowodowało, że dane ziarno nie będzie brane pod uwagę później? Dany słoik?
Innymi słowy, muszę zobaczyć proces decyzyjny bardziej szczegółowo. Z jakiegoś powodu nie jest to konieczne z Guice, być może dlatego, że jest o wiele mniej magii i być może dlatego, że komunikaty o błędach są bardzo dobre.
Co robisz, aby zdebugować aplikacje spawalnicze i na ile to pomaga?
Nie jestem związany teraz przez serwer aplikacji. Jest to plan, jak zrobić "zamrożony rdzeń słoika + dodatkowy słoik funkcji" w każdym dostawcy JSR-330, który teraz robię dla CDI. Czy OpenWebBeans ma lepsze raporty o błędach? Czy spojrzałeś na implementację CanDI w Resin? Moja konfiguracja logowania może odciąć dzienniki DEBUG, będę wyglądać. –
Nie miałem żadnego doświadczenia z OWB lub CanDI. Tylko Weld, a właściwie nie za dużo. – Bozho
OpenWebBeans np. rejestruje zeskanowane pliki JAr. Jeśli coś przegapisz, utwórz problem JIRA. Są bardzo innowacyjne i sądzę, że zaimplementują takie funkcje. –