Java » SpringFramework

Tworzenie aplikacji opartej o wtyczki za pomocą Springa


Strona w budowie
Ktoś pracuje nad tą stroną, jej zawartość może się wkrótce zmienić. Prosimy o cierpliwość!



Spis treści

     1 Wstęp
     2 Projekt
          2.1 Jaki jest cel stworzenia aplikacji?
          2.2 Podział na modły
               2.2.1 Moduł główny
               2.2.2 API pluginów
               2.2.3 Przykładowy Plugin
          2.3 Zależności pomiędzy modułami
     3 Przygotowania do kodowania
          3.1 Stworzenie projektu za pomocą Mavena2
          3.2 Konfiguracja zależności
          3.3 Konfiguracja modułów
          3.4 Integracja z Eclipse IDE
     4 Aplikacja główna
          4.1 Kontekst Aplikacji
          4.2 Wartości domyślne parametrów
               4.2.1 Dygresja - Blok statyczny i kolejność wykonania
     5 Zarządzanie pluginami - interfejs PluginManager
          5.1 Kontekst pluginów do czego służy?
          5.2 Konfiguracja i application.xml
          5.3 Ładowanie pluginów
          5.4 Konfigurowanie pluginów
          5.5 Usuwanie pluginów
          5.6 PluginManagerImpl przykładowa implementacja
     6 Wtyczka - interfejs Plugin
          6.1 Co plugin powinien mieć?
          6.2 Konfiguracja - konstruktor czy metody ustawiające?
          6.3 Inicjacja pluginu - metoda init()
          6.4 Czy plugin powinien działać w wątku?
          6.5 Odwołanie do aplikacji
     7 Implementacja interfejsu Plugin
          7.1 Tworzenie projektu za pomocą maven2
          7.2 Konfiguracja zależności
          7.3 Implementacja pluginu
          7.4 Plugin dodaje się do aplikacji
     8 Testowanie z Maven2 i JUnit
          8.1 Pisanie testów JUnit
          8.2 Testowanie w trakcie budowania
     9 Przygotowanie dystrybucji
          9.1 Zmiany w pom.xml
          9.2 Tworzenie jara


Wstęp


W świecie oprogramowania elastyczność jest cnotą. Współczesne programy oferują wiele możliwości oraz funkcji. Rozwój oprogramowania i wzrost jego złożoności wymusił na programistach opracowanie pewnego mechanizmu, który pozwalał by na łatwe i zunifikowane dodawanie kolejnych elementów do końcowego produktu. Z tej potrzeby narodziła się idea wtyczek, czyli pluginów. W tym artykule przedstawię jedną z metod tworzenia programu opartego o wtyczki. W tym celu wykorzystam Spring Framework oraz narzędzie Maven2. Zakładam, że masz już zainstalowanego Mavena. Jeżeli nie, zapoznaj się najpierw z tym artykułem.

Projekt


Jak każde dobre przedsięwzięcie informatyczne rozpoczniemy naszą pracę od stworzenia projektu. Projekt ułatwia ustalenie wymagań oraz zapewnia uporządkowanie pomysłów. Jest też dobrym "notatnikiem" w którym można określić przyszłe rozwiązania (features). Projekt składa się z kilku podstawowych elementów:
  • Określenia celu
  • Opisu wymagań
  • Opisu sposobu realizacji wymagań.

Jaki jest cel stworzenia aplikacji?


Celem projektu jest stworzenie aplikacji - kalkulatora opartej o mechanizm wtyczek (pluginów). Każda z operacji matematycznych udostępnionych przez aplikację powinna być oddzielnym modułem.

Podział na modły


Moduł główny


API pluginów


Przykładowy Plugin


Zależności pomiędzy modułami


Przygotowania do kodowania


Stworzenie projektu za pomocą Mavena2


Konfiguracja zależności


Konfiguracja modułów


Integracja z Eclipse IDE


Aplikacja główna


Kontekst Aplikacji


Wartości domyślne parametrów


Dygresja - Blok statyczny i kolejność wykonania


Zarządzanie pluginami - interfejs PluginManager


Kontekst pluginów do czego służy?


Konfiguracja i application.xml


Ładowanie pluginów


Konfigurowanie pluginów


Usuwanie pluginów


PluginManagerImpl przykładowa implementacja


Wtyczka - interfejs Plugin


Co plugin powinien mieć?


Konfiguracja - konstruktor czy metody ustawiające?


Inicjacja pluginu - metoda init()


Czy plugin powinien działać w wątku?


Odwołanie do aplikacji


Implementacja interfejsu Plugin


Tworzenie projektu za pomocą maven2


Konfiguracja zależności


Implementacja pluginu


Plugin dodaje się do aplikacji


Testowanie z Maven2 i JUnit


Pisanie testów JUnit


Testowanie w trakcie budowania


Przygotowanie dystrybucji


Zmiany w pom.xml


Tworzenie jara



User:Koziołek

2 komentarze

Koziołek 2009-03-21 22:45

To jest tak zwany STUB względnie MockObject. Na razie nie ma szans na kontynuację. Niestety nie mam czasu, a chętnych nie ma.

Ajgor 2009-03-21 22:06

Czy ktoś w ogóle ma zamiar to kontynuowac?