Koziołek Logger Service – podejście numer 3
Leszek Gawron zaproponował trochę inne podejście do problemu. Nie ukrywam znacznie bardziej eleganckie. Nie pozbawione jednak wad. Najpoważniejszą było wymuszenie by automatyczna detekcja zadziałała po załadowaniu klas. Zmodyfikowałem to podejście pozwalając JVM by odpowiednio szybko i w kolejności ładowała klasy. Wykorzystałem pliki usługi w których zamieściłem spis implementacji. Teraz JVM ładując jara i skanując jego zawartość załaduje wszystkie klasy. Późniejsze wywołanie Class.forName() spowoduje tylko doładowanie klasy ze znanego położenia. Nie dojdzie do sytuacji w której classloader nie będzie wiedział gdzie szukać danej klasy.
Na prośbę Leszka licencja zmienia się na bardziej liberalną BSD. Jak szaleć to szaleć.
Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte inną licencją. W takim przypadku jest, to zaznaczone. Artykuły są dostępne na licencji CC-BY.
Jeżeli spodobał ci się ten wpis, to podziel się nim z innymi lub wesprzyj autora.