Instalacja pluginów w gotowej aplikacji

0

Hej,

Postanowiłem stworzyć aplikację, która będzie umożliwiała instalację w swoim środowisku pluginów rozszerzających jej funkcjonalność (np. dodatkowe narzędzia, zakładki, funkcje). Owe pluginy byłyby dostarczane do aplikacji w formie jarów - czyli wybieramy ścieżkę do odpowiedniego pliku i aplikacja zaczyna z niego korzystać. Po dodaniu nowego jara pojawiłyby się dodatkowe opcje w menu głównym aplikacji np. w menu "tools" jest nowe narzędzie dodane z przytoczonym jarem. Oczywiście teoretycznie istniałaby możliwość dodania nieskończonej ilości jarów.

Myślę, że to będzie spore wyzwanie - dlatego też, czy moglibyście poradzić z uwagi na wasze doświadczenie gdzie najlepiej postawić pierwszy krok w zabawie z tworzeniem aplikacji umożliwiających ich rozwijanie poprzez system pluginów?

Będę wdzięczny za wszelkie porady i odpowiedzi.

PS Co by nie zaczynać kolejnego wątku - jakie rozwiązanie bazodanowe moglibyście polecić dla powyżej napomkniętej aplikacji uniezależniając ją jednocześnie od serwerowych rozwiązań a'la MySQL itd? Zależy mi na możliwości korzystania z tak stworzonej aplikacji na innych kompach bez konieczności instalacji, konfiguracji itd. baz danych (ju noł łot aj min :)).

Pozdrawiam serdecznie :)

1
  1. Opcje widzę dwie:
    a) Oprócz jarów masz też "konfiguracje" swojej aplikacji w której określasz które pluginy mają się odpalić (to nie jest konieczne, bo przy założeniu że pewne konwencje nazewnicze będą zachowane to możesz automatycznie wykryć nowe jary) i na tej podstawie generujesz przy starcie aplikacji xml z konfiguracją dla kontenera IoC. Albo zakładasz że korzystasz z konkretnej implementacji IoC i użytkownik tworzący nowy komponent odpowiednio adnotuje klasy (np. przez @Inject lub @Component). Takie rozwiązanie stosuje na przykład Alfresco.
    b) Rozwiązanie bardziej niskopoziomowe - refleksja. Efektywnie oznacza to niejako napisanie własnego IoC opartego o refleksje.
  2. HSQL, SQLite i inne bazy typu embedded.
0

Dziękuję :) Biorę się za szukanie i czytanie.

Pozdrawiam.

0

http://4programmers.net/Java/W%C5%82asne_us%C5%82ugi_w_JSE tu masz opisany mechanizm services - usług. Z tego modelu zarządzania wtyczkami korzysta m.in. NetBeans.

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