Java Module System - następca JAR

Historia plików JAR (Java Archiwe) sięga połowy lat dziewięćdziesiątych. Pomimo zwartej konstrukcji i powszechnego ich używania, mają one niestety wiele wad. Dlatego też firma Sun Microsystems zgłosiła do JCP (Java Community Process) propozycję opracowania specyfikacji Java Module System, która ma rozwiązać bieżące problemy z używaniem JAR-ów.

Do wad plików JAR zaliczyć należy brak mechanizmu wersjonowania oraz brak wiarygodnego mechanizmu określania zależności pomiędzy różnymi archiwami. Odwoływanie się do określonego archiwum wymaga określania ścieżek dostępu (classpath), a ponieważ ścieżki te mogą się zmieniać w trakcie tworzenia aplikacji, to deweloperzy są zmuszeni panować nad tymi referencjami i cały czas pamiętać o ich właściwym ustawieniu.

Często także zdaża się konflikt wersji lub przestrzeni nazw (namespace), kiedy wśród ścieżek dostępu znajdzie się niechcący kilka nieodpowiednich plików JAR z rozszerzeniami (opcjonalnymi klasami). Poza tym nie ma też mechanizmu współdzielenia tych rozszerzeń pomiędzy różne instancje maszyny wirtualnej - muszą być one instalowane osobno dla każdej z nich.

Java Module System ma rozwiązać te problemy poprzez:

- zdefinowanie specjalnego formatu dystrybucyjnego dla modułów, zawierającego, oprócz samego kodu, także informacje dotyczący innych zasobów znajdujących się w module, czy zależności pomiędzy innymi modułami;

- zaimplementowanie mechanizmów wersjonowania modułów;

- stworzenie repozytorium do składowania i wydobywania modułów;

- wbudowanie do środowiska uruchomieniowego i mechanizmów ładujących klasy (class loaders) funkcji umożliwiających wyszukiwanie, ładowanie i sprawdzanie poprawności modułów.

Plany przewidują wbudowanie opisanych tu mechanizmów do wersji 7 J2SE.

Więcej informacji


Zobacz również