Notatki do zajęć Technologie utrwalania danych dla języka Java (Hibernate, Spring i Maven w tle)

dr Jakub Neumann
Kontakt: jakub.neumann [małpa] inf.ug.edu.pl

O technologiach

Na zajęciach prezentowanych będzie wiele technologii. Część związana blisko z tematyką np. Spring i Hibernate. Inne związane będą z innymi zagadnieniami np. zarządzanie bibliotekami (zależnościami), testowaniem, programowaniem aspektowym. Krótko przedstawiam technologie i ich role w projekcie:

Środowisko pracy (do samodzielnego montażu)

Poniżej zestaw oprogramowania potrzebnego do sprawnego i bezproblemowego , w granicach rozsądku rzecz jasna, eksperymentowania z omawianymi technologiami. System operacyjny obojętny o ile oczywiście wspiera Javę. Przykłady, screenshoty prezentuję na systemie Windows 7. JDK w implementacji Suna (ok. już teraz Oracle). Bardzo proszę o sumienne skonfigruowanie poniższego środowiska, najlepiej w wydzielonym miejscu. Wraz z poniższym oprogramowaniem przekazuję uwagi, które mogą pomóc w rozwiązaniu drobnych konfigruacyjnych problemów, które zaobserwowałem na swoim przypadku. Proszę też pamiętać, że moje rozwiązania mogą nie być jedynimi słusznymi czy najlepszymi. Sprawiają, że całość po prostu działa.

  1. Java SE JDK 6 (nie JRE!)
    Uwaga posiadacze 64-bitowych systemów operacyjnych. Istnieją odmiany Javy 64 i 32 bitowa. Póki co, dla systemu Windows szczególnie, zalecam użycie 32-bitowych wersji, zarówno Javy jak i Eclipsa.
  2. Eclipse IDE for Java EE Developers.
    Proszę sprawić aby Eclipse uruchamiał się w środowisku JDK Javy (a nie JRE). W tym celu można dodać w pierwszych dwóch liniach w pliku eclipse.ini z katalogu eclipse, podobną jak moja scieżkę (bez cudzysłowów):
    -vm
    c:/Program Files (x86)/Java/jdk1.6.0_17/bin/javaw.exe
    	
  3. Apache Maven
    Po rozpakowaniu dystrybucji w pliku conf/settings.xml można zmienić w elemencie <localRepository> ścieżkę do lokalnego repozytorium Mavena. Potrafi solidnie spuchnąć, co jest ważne w przypadku systemów z ustawioną quotą lub innymi ograniczeniami odnośnie ilości miejsca lub wydajności (zewnętrzne dyski czy sieciowe systemy plików) i tym podobne sprawy.
  4. Wtyczki dla Eclipse.
    Sugerowanym przeze mnie sposobem instalacji wtyczek jest Help->Install new software. Robimy go za pomocą Copy&Paste adesu url, tzw. update site (uwaga! to nie jest strona www). Poniżej podaję adresy stron (zwyczajnych, www), na których można znaleźć update site dla odpowiednich wtyczek - robimy Copy a następnie Paste do Help->Install new software->Work with i klikamy Add. Poniżej podaję również jakie konkretnie wtyczki należy zainstalować, gdyż czasami jest więcej dostępnych.
    • Spring IDE
      Instalujemy 3 wtyczki: Spring IDE core, Spring IDE Autowire Extension, Spring IDE AOP Extension
    • Eclipse Maven plugin
      Instalujemy 1 wtyczkę: Maven Integration for Eclipse
      Po instalacji należy jej wskazać położenie lokalnej instalacji (tej z pkt. 3) mavena: Window->Preferences->Maven->Instalations->Add i zaznaczyć checkboxa External dodanej lokalizacji.
    • Jakiś plugin do SVN (subclipse, subversive) lub narzędzie zewnętrzne (TortoiseSVN) do pracy z repozytorum dostępnym przez metodę svn+ssh
      Instalujemy wtyczkę: Eclipse Subversive

      Na swoim komputerze używam, ze względu na bezpieczną, bezproblemową i sprawną współpracę z repo dostępnym przez svn+ssh, Eclipse Subversive w kooperacji z pageant.exe (część dystrybucji putty) umożliwiającym bezhasłowy (klucze publiczny i prywatny) dostęp do konta poprzez ssh oraz TortoiseSVN. Dla chętnych wskazówki tutaj

Jak zacząć

Kolejne wersje kodu aplikacji rozwijanego na zajęciach będę wrzucał do repozytorium w postaci tagów lub czasami branchy (piękne polskie słowo). O tym jak zacząć w szczegółach czyli import projektu z repozytorium svn

Zadania na 13 maja 2010

Celem zadania jest tworzenie i testowanie zapytań. Do wypełniania danych na potrzeby testów możemy użyć technologii DbUnit. Przykład bardzo prostego zastosowania znajduje się w repozytorium, w trunk. Przy okazji zrobiłem trochę porządków z kodem:

Zadanie na zajęcia: tworzenie i testowanie zapytań

  1. Stworzyć kilka zapytań z paramtetrami, w klasie serwisu np. wyszukiwanie Cartoon po nazwie, po Characters, które w nim grają itp. Skorzystać z bardzo dobrych przykładów z manuali hibernata: język zapytań oraz criteria queries
  2. Wypełnić plik z danymi testowymi, tak aby zawierał wiecej danych na potrzeby tych testów (tak aby testować również powiazania między klasami)
  3. Przetestować zapytania