czwartek, 4 września 2008

JBoss Tools - nowa jakość w tworzeniu aplikacji opartych o JSF

Całkiem niedawno, Piotrek Buczek, jeden z moich zafascynowanych Seamem kolegów pokazał mi kilka sztuczek związanych z tą technologią. Oprócz sztuczek, bardzo zresztą widowiskowych uwagę moją przykuło środowisko na jakim pracował. Był to Eclipse 3.3 z wtyczką JBoss Tools. Wsparcie dla Seama - bardzo pierwsza liga, jak to mawia pan Kazimierz. Jak się ma wsparcie dla samych JSFów, zaraz zobaczymy. Zdradzę tylko, że wcale nie gorzej...

Odkąd dostałem olbrzymią emkę za udział w konkursie Ganymede Around the World Contest nie przystoi mi używać innej wersji Eclipse. Na nim zatem zainstaluję wtyczkę JBoss Tools. Z Ganymede działa tylko rozwojowa wersja wtyczki (JBossTools 3.0.0.Alpha1) więc tą właśnie zainstaluję, ale po kolei...

Wtyczkę można pobrać ze strony projektu JBoss Tools lub zainstalować wykorzystując Eclipsowego zarządcę wtyczek. Wybieram to drugie rozwiązanie. Otwieram menu
Help / Software Updates...
i wybieram zakładkę
Avaliable Software.
Dodaję nową stronę o adresie:
http://download.jboss.org/jbosstools/updates/development



Rozwijam nowo utworzony węzeł drzewka, zaznaczam
JBossTools Development Release 3.0.0.Alpha1
i klikam magiczny przycisk
Install



Eclipse warczy, ściąga, restartuje się... i gotowe. Wypada jeszcze tylko skonfigurować w Eclipse JBossa. Odpalam zatem menu
Window / Preferencess. i tam wybieram pozycję
Server / Runtime Environments następnie klikam
Add... i rozwijam gałąź JBoss, a division of Red Hat.


Kilka razy klikam Next wskazuję położenie na dysku JBossa i gotowe.

Czas przyjrzeć się lepiej możliwościom wtyczki.Tworzę nowy projekt JSF (File / New... / Project... / JSF Project).


Na następnej zakładce wybieram wersję JSF 1.2 z Faceletami oraz szablon FaceletsKickStartWithoutLibs, jako, że biblioteki mam w JBossie.




Zobaczmy co oferuje wtyczka. Otwieram plik WebContent/pages/greeting.xhtml. Pierwsze zaskoczenie - oprócz kodu pliku xhtml, mam zgrabny podgląd.



Klikam dowolne miejsce na podglądzie, podświetla mi się odpowiednie miejsce w kodzie.



Ładnie...
Dodaję nowy tag, zmiany na bieżąco widzę w oknie podglądu.



Jak dla mnie, rewelacja...
Czas na zabawy z klawiszem CTRL. Przyciskam go, najeżdżam myszą na pole name wyrażenia #{person.name}. Klikam..,. i już widzę metodę getName() klasy Person, która w pliku faces-config.xml skonfigurowana jest jako ziarno zarządzane JSF.



Klikam w słówko greeting wyrażenia #{msg.greeting}. No i bomba, jestem już przy edycji pliku messages.properties i jego właściwości greeting.



Plik oczywiście jest skonfigurowany odpowiednio w faces-config.xml.
Przejdźmy zatem do tego pliku. Już pierwszy rzut oka, pozwala nam się zorientować, że mamy możliwość graficznej edycji nawigacji w aplikacji JSF.



Sympatycznie. Tu niestety mały minus... Wtyczka automatycznie formatuje zawartość xmlową pliku faces-config.xml, więc nie bardzo można mieć kontrolę nad wcięciami i kolejnością tagów w pliku. Przynajmniej ja nie potrafię tego osiągnąć.

Wrócę jeszcze na moment do pliku WebContent/pages/greeting.xhtml. Oprócz nawigacji z klawiszem CTRL. Wtyczka JBoss Tools oferuje całkiem niezłe podpowiadanie. Zarówno tagów (wystarczy wpisać <f: i nacisnąć CTRL+spację)



jak i właściwości ziaren zarządzanych



oraz wpisów w pliku messages.properties.



Mało? Zobaczmy, co jeszcze oferuje JBoss Tools. Odpalam projekt (na zakładce JBoss Server View klikam Start the server.



Serwer startuje...
Wchodzę na stronę
http://localhost:8080/jsfProject/

otwieram w Eclipsie plik
WebContent/pages/inputname.xhtml. Zauważyliście, że wykorzystywana jest tu, trochę zapomniana funkcja Faceletów, która umożliwia takie konstruowanie stron JSF, aby były one poprawnie wyświetlane w przeglądarce WWW bez uruchamiania ich na serwerze aplikacji?
Zmieniam tytuł Facelets Hello Application na Witaj!. Zapisuję stronę. Przeładowuję ją w przeglądarce... i gotowe, zmiany od razu są widoczne.



Niestety zmiany w kodzie źródłowym, w plikach messages*.properties lub konfiguracja w faces-config.xml wymagają już restartu serwera.



To zapewne tylko niektóre możliwości wtyczki. Jak dla mnie, są one rewelacyjne. Coś czuję, że JBoss Tools dołączy do mojego zestawu ulubionych wtyczek środowiska Eclipse.

3 komentarze:

Jacek Laskowski pisze...

Powiem tak - JBoss Tools nie przypadły mi do gustu ostatnim razem, kiedy z nimi pracowałem - Eclipse nieźle mulił i zraziłem się do niego/nich. W dodatku, dowiedziałem się niedawno, że Oracle wypuścił bezpłatnie dawnego BEA Workshop jako Oracle Workshop for WebLogic 10.3, który pamiętam, że miał warte uwagi funkcjonalności w kwestii wsparcia JSF, co sprawia, że nawet nie myślę o ponownej próbie pracy z JBT. Mam również RADa czy NetBeansa, ale i nad Workshopem warto się pochylić. Dla JBT na razie zdecydowane nie (chyba, że zmieniła się szybkość działania wtyczki).

Jacek
Notatnik Projektanta Java EE

MZ pisze...

kieedyś, kiedyś (ponad rok temu), też narzędzi JBossa zrezygnowałem. Teraz wracam. Czy chodzą szybciej, czy mam lepszego PCta? Trudno powiedzieć.

kretes pisze...

Także korzystałem z tej wtyczki i nie chodziła specjalnie wolno.
Co prawda wymaganie pamięciowe wszystkich komponentów na raz trochę męczyły, ale sam eclipse ok.

Racjonalny Developer