29 listopada 2006
Tworzenie aplikacji Java EE 5 z Apache Maven 2 i Glassfish
W nadchodzący wtorek - 5.12 o 18:00 - jest planowane spotkanie grupy Warszawskiej Grupy Użytkowników Java (Warszawa JUG), więc będzie okazja przedyskutować szczegóły. Może nawet uda mi się dokończyć artykuł o facelets. Z pewnością będzie ciekawie móc zaprezentować temat na żywo. Miłej lektury i do zobaczenia!
19 listopada 2006
Eclipse Extension Location - zarządzanie wtyczkami
Więcej na Zarządzanie wtyczkami w Eclipse - Extension Location. Ciekaw jestem ilu miało świadomość istnienia tego mechanizmu.
18 listopada 2006
Eclipse 3.3 M3 i ciekawostka w zarządzaniu przestrzeniami roboczymi
Funkcjonalność, o której piszę znajduje się w menu File->Switch Workspace. Wybierając przestrzeń Eclipse zapisuje jej położenie w pliku $ECLIPSE_HOME\configuration\.settings\org.eclipse.ui.ide.prefs. Tak jest przynajmniej od wersji 3.2.
A skąd aż tyle szumu wokół tego? Jak napisałem, kiedyś mnie to zastanowiło, ale było na tyle nieistotne, że nie poświęciłem temu więcej czasu. Tym razem jest inaczej. Zacząłem pracować z Eclipse 3.3M3 i obok menu Other..., po wybraniu Switch Workspace pojawiła się pozycja C:\. Gdybym mógł zdefiniować sobie listę najciekawszych przestrzeni roboczych byłoby przyjemniej. I zacząłem szukać.
Najpierw natrafiłem na rozwiązanie starego problemu. A po chwili natrafiłem na Eclipse 3.3 M3 - New and Noteworthy, co w zasadzie powinno być pierwszym miejscem, w którym powinienem szukać odpowiedzi. A tam pozycja dotycząca Improved workspace switching. Dokładnie to czego mógłbym oczekiwać od tego typu narzędzia. Brrr, chyba zbyt mocno zaczynam przywiązywać się do Eclipse.
Jest pewna uwaga do działania tej funkcjonalności. Eclipse nie rozumiał katalogów z symbolem '@' w nazwie. Używam tego symbolu dla nadania ważności katalogowi, jednakże Eclipse traktował ten znak specjalnie w nazwie katalogu i stąd na liście przestrzeni znajdowała się niezrozumiała dla mnie wcześniej pozycja C:\, która de facto odpowiadała katalogowi C:\@eclipse-workspace\projekt.
13 listopada 2006
Hibernate jako dostawca JPA w samodzielnej aplikacji
Podsumujmy dotychczasowe wyniki pracy z JPA. Stworzyłem aplikację z pomocą NetBeans IDE 5.5, który umożliwił mi skorzystanie z implementacji JPA w wydaniu Oracle TopLink. Nie modyfikując nic w aplikacji (poza konfiguracją JPA) uruchomiłem ją z Apache OpenJPA. A dzisiaj nadeszła pora na Hibernate. Mimo tych niezwykle krótkotrwałych wypadów w świat JPA, już daje zauważyć się pewne różnice. Daje zauważyć się doświadczenie projektu Hibernate i jego prostota użycia. Ale, skoro są to jedynie szczegóły implementacyjne, kto by się tym zajmował. Implementacje JPA (Oracle TopLink, Apache OpenJPA, Hibernate) staną się (stały się?) podobnym rozwiązaniem jak sterowniki JDBC.
Dzisiejsze doświadczenia zaowocowały kolejnym przepisem - Hibernate jako dostawca JPA w samodzielnej aplikacji.
Najwyższa pora zająć się czymś z Java EE 5 na dłużej. Czas na zabawę z implementacjami JSF 1.2 i ich integracja z JPA. Może JBoss Seam? Nie! Na razie wystarczy Glassfish i samo zapoznanie się z nowościami JSF 1.2, a mówi się, że jest ich wiele.
12 listopada 2006
Apache OpenJPA jako dostawca JPA w samodzielnej aplikacji
Doświadczenia z Apache OpenJPA spisałem w kolejnym artykule - OpenJPA jako dostawca JPA w samodzielnej aplikacji - na moim Wiki. Zapraszam do lektury i nadsyłania swoich propozycji kolejnych tematów, jeśli wałkowanie Java Persistence API zaczyna nurzyć ;-)
Miłej zabawy z JPA w wydaniu OpenJPA!
Java Persistence API w samodzielnej aplikacji
11 listopada 2006
Pierwsza aplikacja z JSF 1.2 i EJB 3.0
Po instalacji Glassfish (od tej pory zwanego GF) oraz NetBeans IDE (NB) postanowiłem skorzystać z możliwości ich integracji i stworzyć pierwszą aplikację Java EE z ich użyciem. Jakież było moje zdumienie, kiedy po niecałych 5 minutach zobaczyłem działającą aplikację opartą o JSF 1.2 i EJB 3.0, a dokładnie JPA (!) To było dokładnie to czego potrzebowałem - kilka ruchów myszką i uderzeń w klawiaturę i mam aplikację z pełnymi źródłami do analizy. Zrozumienie aplikacji nie zabiera więcej niż kolejne 10-15 minut (oczywiście zakładając znajomość takich pojęć jak JSF w ogólności, kontenery IoC i Java Annotations). Z niecierpliwością oczekuję projektu, w którym przyjdzie mi stosować cudeńka Java EE i SE 5. Tworzenie aplikacji Java EE nie mogło być prostsze!
Opis przykładowej aplikacji po angielsku to:
Demonstrates the use of Java Persistence APIs based on the new Java Persistence specification in conjunction with JavaServer Faces that creates a simple authentication scheme using JavaServer Faces PhaseListeners and a simple Entity bean representing a user.
Dla zainteresowanych samodzielnym przejściem mojej "ścieżki zdrowia" przedstawiam kolejne kroki. Założeniem jest, aby GF i NB były zainstalowane.
- Uruchamiamy NB
- Definiujemy GF w menu Servers w zakładce Runtime w NB.
- Otwarcie NB wiąże się z jednoczesnym uruchomieniem okna Welcome z różnymi pozycjami związanymi z NB, gdzie w dolnym lewym rogu znajduje się Sample Projects, a tam pozycja Enterprise.
- Wybranie Enterprise to uruchomienie pomocnika (ang. wizard) , gdzie wybieramy JsfJpa (prawy panel - Projects) i wciskamy przycisk Next.
- Podajemy położenie projektu i wciskamy przycisk Finish.
- Tak utworzyliśmy nasz projekt JsfJpa (zakładka Projects) z wykorzystaniem JSF i JPA.
- Zaznaczamy projekt JsfJpa i z menu pod prawym klawiszem myszy wybieramy menu Run Project.
- Uruchamia się automatycznie Java DB oraz GF i przeglądarka z adresem http://localhost:8080/jsf-jpa-war/. To kończy naszą dzisiejszą pracę.
10 listopada 2006
Pierwsze kroki z Java EE z Glassfish i NetBeans IDE
Zabawę rozpoczynam od pobrania wersji instalacyjnej Glassfish V2 B19. Instalacja jest niezwykle prosta i polega na pobraniu odpowiedniej wersji i uruchomieniu instalera, który jest wykonywalnym plikiem jar (ang. executable jar). Dokładnie jak opisano na https://glassfish.dev.java.net/downloads/v2-b19.html, czyli
java -Xmx256m -jar glassfish-installer-v2-b19.jar
Cała instalacja zabiera nie więcej niż 2-3 minuty (rozpakowanie paczki i uruchomienie anta). Wykonanie polecenia asadmin start-domain "podnosi" serwer i możemy zaczynać (dla pełnego obrazu dodam, że zatrzymanie serwera to wykonanie polecenia asadmin stop-domain). Komunikat na konsoli informuje o konsoli administracyjnej pod adresem http://localhost:4848 (dobrze, że Firefox zapamiętał hasło, bo nie dałbym rady dostać się do niej). W menu Application nie ma jeszcze żadnej aplikacji, więc koniecznie należałoby rozejrzeć się na stronie projektu w poszukiwaniu przykładowych aplikacji. Ale to już w kolejnych dniach...
Kolejny krok to właśnie uruchomienie przykładowych aplikacji, których spodziewam się, że w projekcie będzie kilka. Pisanie nowych będzie odbywać się w NetBeans IDE 5.5, który mówi się, że jest wielce pomocny przy tworzeniu rozwiązań z Java EE 5 (na codzień używam Eclipse/RAD i minęło już trochę czasu od momentu, kiedy kilkakrotnie w tygodniu otwierałem projekt w NetBeans, więc początek może być bolesny ;-)).
Jeśli udało Ci się stworzyć aplikację korzystając z Java EE napisz, co najbardziej podobało Ci się w nowej specyfikacji, a co najmniej i co sprawiło trudności. Chętnie wysłucham rad bardziej doświadczonych użytkowników Java EE.
Za miesiąc spotkanie Warszawa-JUG i chciałbym móc zaprezentować temat Java EE mając więcej doświadczeń. Wiem, że jest wielu, którzy korzystają z JBoss AS 4.0.5 (z EJB 3.0), czy JBoss Seam i to byłyby z pewnością chwytliwe tematy, ale sądzę, że możliwość porównania dwóch różnych środowisk - Glassfish vs JBoss - może być jeszcze ciekawsze. Powinienem tym samym z łatwością sprowokować ciekawą dyskusję na ten temat.
07 listopada 2006
1. inauguracyjne spotkanie Warszawa-JUG za nami
Temat prezentacji to Apache Geronimo w ogólności oraz jego integracja z Eclipse. Mimo, że chciałem zaprezentować Apache Geronimo w akcji to przez pierwszą godzinę gadałem jak nakręcony. Sam nie mogłem uwierzyć, że czas zleciał tak szybko. Postanowiłem przyspieszyć i zaprezentować wtyczkę Eclipse do pracy z Geronimo, uruchomiłem więc bardzo prostą aplikację internetową, zaprezentowałem konsolę Geronimo i kolejne 20 minut poszło w zapomnienie.
W międzyczasie wspomniałem o funkcjonalności Eclipse o nazwie Extension Locations, które pozwala na rozbudowę Eclipse o wtyczki bez modyfikacji katalogu głównego (w ten sposób uaktualnienie wtyczek, czy samego Eclipse jest trywialnie proste). Okazało się, że temat zyskał tyleż fanów, co sam temat główny i kolejne 20 minut przebiegło na jej omówieniu.
Kolejne, tym razem ostatnie, 20 minut poświęciliśmy na sesję pytań i odpowiedzi. Zakończyliśmy o godzinie 20:00.
Na moje pytanie kto nie zdecyduje się na przyjście kolejnym razem nikt się nie odezwał, co pozwala przypuszczać, że inicjatywa się podoba i będzie tym samym kontynuowana. Kolejne spotkanie za miesiąc!
Acha, zapomniałbym - spotkanie było nagrywane, więc oczekujcie publikacji nagrania niebawem. Będzie się z czego pośmiać, bo kilkakrotnie sala wybuchła śmiechem po moich próbach konstruowania inteligentnych odpowiedzi. A są one nierzadko okraszone zupełnie nietrafionymi w miejsce i porę moimi przemyśleniami. Warto chociażby z tego powodu zapoznać się z materiałem ;-)
IBM Rational Software Architect V7.0 Open Beta dostępna
Wersja RSA V7 oparta jest o najnowsze dziecko projektu Eclipse.org - Eclipse 3.2.1 i w zasadzie ten trend powinien się utrzymać, tzn. podczas instalacji RSA możemy wybrać opcję doinstalowania wtyczek (ang. plugins) i rozszeżeń (ang. features) do własnej zainstalowanej wersji Eclipse. Oznacza to, że pod warunkiem braku niekompatybilnych zmian w samej architekturze wtyczek w Eclipse, RSA powinien działać również z kolejnymi wersjami (np. Eclipse 3.3).
Po instalacji zabrałem się za stworzenie przykładowej aplikacji J2EE. Uruchomienie jej na IBM WebSphere Application Server (WAS) v6.1 nie stanowiło żadnego problemu (przypominam, że moje doświadczenie w tym zakresie mogłoby przez wielu być nazwane porażająco niskim, więc można sobie wyobrazić jak prosty musi być ten krok). Szybkość reakcji narzędzi jest imponująca (nawet podczas działania WASa), więc główny mankament RSA (a właściwie RAD V6) został wyeliminowany.
Na uwagę zasługuje również fakt, że wersja beta produktu RSA V7 to jednocześnie pełna nowa wersja RAD V7. Podczas instalacji możemy wybrać te funkcjonalności, które nas interesują, co pozwala na wykluczenie tych rozszeżeń RADa, które nie są w zakresie naszych zainteresowań, dodatkowo odchudzając narzędzie (zostawiając jedynie narzędzia wokół UML), ale nie idzie się oprzeć pokusie zainstalowania wszystkiego. Prostota instalacji zniewala ;-) A na prawdę warto. Ilość narzędzi i komfort pracy z RSA jest imponująca. Zresztą, co tu wiele pisać - jest to po prostu Eclipse 3.2.1, więc chociażby to wprowadza wiele dobrego. Reszta jest równie warta poświęcenia czasu szczególnie, że mamy do czynienia z wersją darmową (przynajmniej na czas trwania dostępności wersji beta).
Nie miałem niestety wiele czasu na zabawę z możliwościami RSA w zakresie UML, więc niewiele mogę napisać. Z niecierpliwością jednakże oczekuję chwili, kiedy będę mógł wrócić do niego i popróbować swoich sił. Reszta, co tu dużo ukrywać pójdzie najprawdopodobniej w odstawkę (cóż, może następnym razem bliżej się im przyjrzę - na pewno nie tym razem).
Chętnych do dyskusji na temat możliwości narzędzia zapraszam na strony produktu - https://www14.software.ibm.com/iwm/web/cc/earlyprograms/rational/desktop70O/, gdzie można pobrać wersję beta oraz uczestniczyć w rozmowach o produkcie na jego forum. Sam zamierzam zarzucić inne produkty UML na jego rzecz i przyjrzeć się (czytaj: przetestować na własnej skórze) możliwości narzędzi UML w RSA. Jeśli masz jakiekolwiek uwagi o jego funkcjonowaniu, chętnie ich wysłucham i być może tym samym zapobiegnę doznaniu nieprzyjemnego uczucia niespełnienia moich oczekiwań... ;-)
03 listopada 2006
I spotkanie Warszawskiej Grupy Użytkowników Technologii Java (Warszawa-JUG)
Witajcie!
Warszawska Grupa Użytkowników Technologii Java (Warszawa-JUG) zaprasza na inauguracyjne spotkanie, które odbędzie się we wtorek 07.11.2006 o godzinie 18:00 w sali 5820 Wydziału MiMUW przy ul. Banacha 2 w Warszawie.
Temat prezentacji: Apache Geronimo
Wielu z nas śledzących rynek rozwiązań Java EE spotkała się już zapewne z projektem Apache Geronimo. Celem projektu jest stworzenie serwera aplikacyjnego zgodnego ze specyfikacją Java EE 5, po tym jak cel główny - zgodność z J2EE 1.4 - został spełniony w wersji 1.0. Kolejna wersja 1.2 ma już być częściową implementacją specyfikacji Java EE 5 i jej wydanie planowane jest na ten rok. Prezentacja będzie miała na celu zademonstrowanie możliwości serwera, sposób jego działania, konfigurację i jego elementy składowe. Na prezentacji spróbuję dodatkowo odpowiedzieć na najczęściej zadawane pytania odnośnie serwera oraz przedstawię elementy, które niejednemu nasuną kontrowersyjną tezę o niebywałym podobieństwu między nim a...Spring Framework (!)
W projekcie rozwijana jest również wtyczka do Eclipse IDE, która pozwala na tworzenie aplikacji Java EE w Eclipse i uruchamianie jej na serwerze, o której będzie również mowa na prezentacji. Z jej pomocą, stworzymy demonstracyjną aplikację, którą następnie uruchomimy na serwerze.
Prezentacja prowadzona będzie przez Jacka Laskowskiego, który jest członkiem zespołu koordynującego i programistą w projekcie Apache Geronimo.
Planowany czas prezentacji to 1 godzina z kolejnymi 30 minutami na dyskusję.
Zapraszam w imieniu Warszawa-JUG!