****************************************************************************************
*                                                                                      *
* Kody źródłowe do książki "JavaServerFaces i Eclipse Galileo. Tworzenie aplikacji WWW"*
*                                                                                      *
****************************************************************************************

---------------------------------------------------------------------------------------
Wymagania
---------------------------------------------------------------------------------------
Apache Tomcat v.6+ (lub serwer aplikacji Glassfish 2.1)
Eclipse Galileo (wersja instalacyjna Eclipse Java EE IDE for Web Developers), 
baza danych MySQL v.5.x lub nowsza,
Sun JRE 1.6.x
Windows XP lub nowszy 
---------------------------------------------------------------------------------------
Zawartość
---------------------------------------------------------------------------------------
Kody źródłowe zawierają kompletne katalogi zawierające utworzone przez autora projekty,
utworzone w środowisku Eclipse Galileo, a mianowicie:

- katalog 'isrpModel', zawierający strukturę katalogów i plików projektu typu Utility Project,
  Kod zawiera implementację wartswy biznesowej aplikacji ISRP  opisanego w rozdziale 2, 

- katalog 'isrp', zawierający strukturę katalogów i plików projektu typu Dynamic Web Project,
  Kod zawiera implementację wartswy prezentacji aplikacji ISRP w JSF,   

- katalog 'Zasoby', zawierający pliki źródłowe aplikacji Kalkulator Temperatur (opisanej w 
  rozdziale 1), oraz luźnych przykładów z pozostałych rozdziałów (komponentów użytkownika, 
  konwerterów, itp.).   


UWAGA!!! Projekty isrp i isrpModel zawierają niestandardowe podkatalogi lib i libraries, 
w których umieszczone zostały biblioteki zależne (zewnętrzne pliki JAR).  Rozwiązanie to 
zwalnia czytelnika z konieczności pobierania i dopisywania do ścieżki JavaBuildPath 
bibliotek wymaganych do skompilowania i uruchomienia projektu.

Przed instalacją kodów rozpakuj plik jsfecg.zip.

------------------------------------------------------------------------------------------
Instalacja aplikacji ISRP 
------------------------------------------------------------------------------------------
1. Instalacja bazy danych

Aby utworzyć bazę danych dla systemu ISRP uruchom skrypt db.sql, wpisując w linii komend MySQL: 

mysql> source {sciezka do pliku}\db.sql (np. "mysql> source c:\db.sql")

Skrypt zakładający bazę danych można również uruchomić przy użyciu narzędzi DatabaseDevelopment 
w środowisku Eclipse. Wynikiem instalacji jest baza danych zawierająca 2 utworzonych użytkowników 
testowych o uprawnieniach administratora i recenzenta. Dane uwierzytelniające (możesz zmienić te dane w skrypcie sql) :

Użytkownik: Pierwszy Administrator
login: admin@op.pl
hasło: password

Użytkownik: Testowy Recenzent
login: reviewer@op.pl
hasło: password


-----------------------------
2. Wdrożenie modułu użytkowego ISRPModel

Zaimportuj projekt z katalogu isrpModel do środowiska Eclipse (opcja File/Import/General/Import Existing Projects into Workspace).
Po utworzeniu projektu powinien on zostać automatycznie skompilowany (zaznacz opcję Project/Build Automatically...).
Wprowadź ustawienia bazy danych do pliku:
- hibernate.cfg.xml (ustawienia bazy danych) 


-----------------------------
3. Wdrożenie modułu interfejsu ISRP.

Zaimportuj projekt isrp (analogicznie do isrpModel). Ustaw konfigurację skrzynki pocztowej i katalogu do uploadu 
w pliku: 

- isrp.bundle.configuration.Configuration.properties  

Ustaw serwer na którym ma być uruchamiana aplikacja (patrz rozdziały 1 i 6) i uruchom aplikację. 
Zakładając że aplikacja będzie uruchamiana na lokalnym serwerze, aby ją uruchomić wpisz w pasku adresu przeglądarki:

http://localhost:8080/isrp/faces/jsp/index.jsp

Uwaga. Środowisko Eclipse może wskazać błędy na stronach JSP w wyrażeniach EL (typu JSF Problem). Nie ma to wpływu na kompilowanie 
i uruchamianie aplikacji. Powodem takiego zachowania środowiska Eclipse jest słabe wsparcie dla UEL.

-------------------------------------------------------------------------------------------
Scenariusz testowania aplikacji ISRP
-------------------------------------------------------------------------------------------
Aby sprawdzić poprawnośc konfiguracji, po uruchomieniu można wykonać następujące testy funkcjonalności (w kolejności jn.):

1. Po uruchomieniu aplikacji przejdź do menu rejestracja i zarejestruj się jako nowy użytkownik.
Oczekiwany wynik: powrót do strony logowania + mail na adres podany w formularzu.

2. Zaloguj się na konto nowego użytkownika (e-mail stanowi login systemu).
Oczekiwany wynik: przejście do ekranu użytkownika 

3. Dodaj pracę. 
Oczekiwany wynik: wyświetlenie tabeli zawierającej przesłaną pracę + email do autora + nowy plik w katalogu do UPLOADu.

4. Wyloguj się.
Oczekiwany wynik: przejście do strony logowania.

5.  Zaloguj się jako administrator i przejdź do opcji lista prac.
Oczekiwany wynik: ekran z tabelą prac zawierającą wprowadzoną pracę.

6. Przypisz recenzenta do pracy (przejście do ekranu z wyborem recenzenta - wybierz testowego)
Oczekiwany wynik: ekran z tabelą prac zawierający zmienione dane + email do recenzenta +email do autora.


------------------------------------------------------------------------------------------
Aplikacja Kalkulator Temperatur i inne przykłady
------------------------------------------------------------------------------------------
Szczegółowy opis implementacji i wdrożenia aplikacji Kalkulator Temperatur został umieszczony w rozdziale 1 książki. 
Katalog  Zasoby zawiera:
-  podkatalog src - kody źródłowe klas Javy dla aplikacji Kalkulator oraz innych przykładów (w innych pakietach), 
-  podkatalog WebContent - strony JSP i inne zasoby WWW aplikacji Kalkulator oraz innych przykładów (podkatalog inne).


