Pluginy / moduły w środowisku zakładowego frameworku

0

Są sobie moduły / pluginy (odrębne projekty JAR) które maja żyć wewnątrz większej całości (implementując interfejs MyPlugin), mówiąc obrazowo.
"main" jest generyczny, a pluginy implementują selektywne tematy branżowe. Web na jetty/tomcacie, ale nie spring ;-P

Nie mam problemu JAK pluginowi przekazać "main"-a, ale mnie zaciekawiło jak to zrobić maksymalnie elegancko.
Wstrzykiwanie A.D2022 są już beee, singletony beee ...

0

Singletony nie są "beeee". Natomiast główne pytanie - to co robisz.

Moim ulubionym sposobem chyba jest po prostu dorzucenie na start jakiejś metody myApp.configure() zawierającej listę modułów w stylu this.registerPlugin(new MyPlugin()). Nic nie stoi na przeszkodzie, żeby istniał jakiś tam rejestr statyczny tych modułów - o ile pokrywa się on z tym, co chcesz zrobić.

0

Może MyPlugin powinien mieć metodę onInit i main uruchamiałby ją przekazując odpowiedni kontekst?

0

Zakładałbym, że jeśli to mają być pluginy, to musi być jakiś plugin manager, który będzie zarządzał lifecycle pluginów. Wtedy interface MyPlugin dostaje metody start() i stop(), gdzie start może służyć jako pluginowy "main" (być może jakiś kontekst możesz tam przekazać jako parametr metody aby plugin mógł sam siebie zainicjalizować).

Jeśli pracujesz w jednym classloaderze to możesz wykorzystać Java Service SPI do załadowania pluginów na starcie aplikacji.

Pytanie jak dużo możesz zmienić a jak duża część jest "zakładowa" i mało zmienialna :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1