Krótki opis konfiguracji

W obecnej wersji konfiguracja modułu core zrealizowana jest w oparciu o wzorzec Dependency Injection (DI). Jest to wzorzec architektury oprogramowania, w którym obiekty nie są same odpowiedzialne za uzyskanie referencji do wszystkich innych obiektów, z którymi współpracują, lecz referencje te są im dostarczone przez zewnętrzne środowisko. Umożliwia to stworzenie dużo luźniejszych powiązań pomiędzy klasami i znacznie ułatwia ich testowanie. W implementacji użyto biblioteki Pico Container (http://www.picocontainer.org/), ponieważ:

  1. Biblioteka ta jest niewielka i nie wymaga użycia innych, zewnętrznych bibliotek.
  2. Pico okazało się bardzo proste w rozszerzeniu i przystosowaniu do użycia właściwości platformy AgE.
  3. Jako jedna z nielicznych bibliotek umożliwia ona tworzenie hierarchii kontenerów, co w naturalny sposób pasuje do hierarchii agentów w konfiguracji Workplace'a.
  4. Umożliwia zarządzanie cyklem życia obiektów, czyli uruchamianie i zatrzymywanie wszystkich obiektów w całej hierarchii.

Do biblioteki Pico, dopisane zostało wczytywanie konfiguracji z pliku XML, które jednak nie jest konieczne do wykorzystania mechanizmów DI - możliwy jest inny sposób przekazywania konfiguracji (serializacja do plik, przez sieć).