09 czerwca 2008

GWT 1.5 i Eclipse Ganymede z Cypal Studio for GWT (RC6)

Już nie pamiętam, kiedy to było, kiedy ostatni raz tworzyłem aplikację z Google Web Toolkit (GWT). Ostatni raz zapewne to było przy Tworzenie aplikacji Google Web Toolkit z Java Persistence API. Dodając do tego wydanie GWT 1.5 Release Candidate 1 ze wsparciem dla konstrukcji Java 5 i aż się chce wrócić do tematu. Dużo się ostatnio pisze o tym konkursie Ganymede Around the World Contest (ukłony dla Jacka P. i Michała M.), więc postanowiłem sprawdzić jak się sprawy mają w kontekście tworzenia aplikacji z GWT w środowisku Eclipse Ganymede. Nie ukrywam, że długi czas zajęło mi zdecydowanie się na środowisko rozwoju aplikacji GWT i nie jest to pierwszy raz, kiedy się z tym borykam. Jeśli Eclipse i GWT, to na scenę wchodzi projekt Cypal Studio for GWT, który jest zbiorem wtyczek eclipsowych wspierających tworzenie aplikacji GWT. Ostatnia wersja R6 wyszła...36 godzin temu! Jak to bywa w takich sytuacjach, dla niektórych to nie lada stres dotknąć jeszcze ciepłego produktu, a dla pozostałych gratka skosztowania nowych funkcjonalności. Nie długo trwało, kiedy przekonałem się, że dla moich podstawowych wymagań tworzenia aplikacji GWT Cypal Studio for GWT zdecydowanie wystarczy. I wszystko działa jak należy, chociaż nie obyło się bez niespodzianek.

Zestawienie środowiska do tworzenia aplikacji GWT z Eclipse Ganymede i Cypal Studio for GWT rozpoczynam od pobrania Cypal Studio i najnowszej wersji GWT. Eclipse Ganymede już mam, więc mam go z głowy. Instalacja Cypal Studio to umieszczenie go w wybranym katalogu, np. C:\apps\eclipse-plugins\cypal.studio.for.gwt\eclipse\plugins (paczka dystrybucyjna narzędzia to zestaw wtyczek - pliki jar), a następnie w katalogu links w Eclipse umieszczam plik cypal.studio.for.gwt.link o następującej treści:
 path=C:/apps/eclipse-plugins/cypal.studio.for.gwt
Więcej o tym mechaniźmie instalacji wtyczek do Eclipse w Zarządzanie wtyczkami w Eclipse - Extension Location.

Teraz wystarczy prześledzić krótką acz treściwą dokumentację Cypal Studio for GWT i po 5 minutach można cieszyć się z gotowego środowiska, albo nawet gotowej aplikacji opartej o GWT.

Rozpoczynam od konfiguracji wtyczki w Eclipse - Window > Preferences > Cypal Studio i ustawiam parametr GWT Home. Następnie Ctrl+N i wybieram Dynamic Web Project, gdzie w Configuration pojawi się Cypal Studio for GWT (acz jedynie jeśli wersja Dynamic Web Module version jest niższa niż 2.5). Bez względu na wybór Configuration (czy istnieje czy nie, np. przy wyborze wspomnianej wersji 2.5) istnieje możliwość wyboru własnej konfiguracji (Custom) przez przycisk Modify (obok pola Configuration), gdzie widoczny jest Cypal's GWT Facet.

Jedna uwaga związana z tworzeniem projektu, w którym moglibyśmy wybrać Apache Tomcat 6.0 jako środowisko uruchomieniowe. Próba uruchomienia tak zestawionego projektu z GWT Hosted Mode Application kończy się błędem o niedostepności klas bądź niezgodności sygnatur metod - generalnie niezła jazda i nie wiadomo, o co chodzi. Już byłem bliski zrezygnowania z Eclipse na rzecz IntelliJ IDEA, który również udostępnia wsparcie dla projektów GWT, kiedy w końcu udało mi się rozpracować temat, co sprowadziło się do usunięcia serwera Apache Tomcat jako domyślnego środowiska uruchomieniowego. Nie mam pojęcia, czy z innymi środowiskami również można doświadczyć tego "cudeńka".

I na koniec uwaga o usunięciu pliku gwt-user.jar z dokumentacji Cypal Studio for GWT, która nie dotyczy wersji GWT 1.5. Nie trzeba sobie zaprzątać głowy tym plikiem.

Po utworzeniu projektu, wystarczy Ctrl+N i Cypal Studio > GWT Module, podać dane modułu GWT i voila - aplikacja gotowa!

Jako przykład jakiejkolwiek funkcjonalności wyłącznie w celach demonstracyjnych można skorzystać z dokumentacji javadoc dla GWT, gdzie przy każdej kontrolce pojawia się krótki przykład, na jej wykorzystanie, np. dokumentacja com.google.gwt.user.client.ui.ToggleButton. Pozostaje jeszcze zajrzeć do katalogu samples, uruchomić przykłady, rozejrzeć się po kodzie i można zaczynać coś poważniejszego.

Uruchomienie aplikacji to Run > Run Configurations > GWT Hosted Mode Application i wybranie projektu GWT (pole Project) z odpowiednim modułem (pole Module). Tak proste, jak prostym powinno być.

Pytanie konkursowe: Jak nazywa się zestaw wtyczek eclipsowych do tworzenia aplikacji GWT?

p.s. Miałem o tym pisać już wcześniej, ale dopiero teraz się zebrałem. Podczas, kiedy ja żyłem JAVArsovią 2008, moja Agatka zdecydowała się trochę zrewolucjonizować nasze rodzinne życie i postanowiliśmy (my?!) kupić nowe mieszkanie na Ursynowie. Żonuś moja kochana trochę sceptycznie podchodzi do próby nagłaśniania tematu na moim blogu, ale może w ten sposób zrekompensuję rodzinie straty czasowe, kiedy to przesiaduję na blogu zamiast zajmować się nią i być może namierzę ciekawe mieszkanie. Interesuje nas mieszkanie 4-pokojowe (75-90m2) na Ursynowie (preferowany Natolin), najlepiej za...darmo - może znajdzie się jakaś bogata ciocia z Ameryki ;-) Jeśli macie wieści o takim lokum na Usynowie koniecznie dajcie znać. Fajnie byłoby się pochwalić mieszkaniem kupionym przez bloga. Dziękuję!