27 stycznia 2011

Nieprzewidziane przypadki moje podczas ostatniego spotkania Warszawa JUG

0 komentarzy
Podczas ostatniego 76. spotkania Warszawa JUG - Tworzenie procesów biznesowych z Activiti i IBM WebSphere BPM (WPS/WID/WLE) doszło kilkukrotnie do swoistego mojego zawieszenia, kiedy prezentowałem "wspaniałości" produktów z rodziny IBM WebSphere BPM - Process Server (WPS) V7 oraz Integration Developer (WID) V7.

Pamiętam, że udało mi się natrafić na przynajmniej 2 takie momenty - podczas odczytywania adresu (punktu końcowego) usługi sieciowej...okej, okej...Web Service w konsoli administracyjnej WPSa, którego tam po prostu nie było (ku mojemu i pewnie publiczności również widząc moje) zdziwieniu oraz niemałemu zakłopotaniu przy prezentacji WS-BPEL dla nowostworzonego procesu biznesowego.

Pierwszy temat już wyjaśniłem i opisałem w Endpoint address of JAX-WS binding empty when…Enter pressed too early. O drugim będzie niebawem. Podobnie jak z nagraniem spotkania. Deklarowałem lekki lifting moich nieocenzurowanych korporacyjnie wypowiedzi, ale pewnie skończy się na konwersji i puszczeniu w świat bez edycji. Niebawem.

Przy okazji, spotkanie było dla mnie podwójnym zaskoczeniem (pomijając wyżej wymienione). Po primo, pojawiło się wiele osób (powiedziałbym, że > 30), a po secundo wielu z tych wielu nie widziałem całymi latami i to nie tylko na naszych spotkaniach. Powiedziałbym, że pojawiła się śmietanka naszego światka korporacyjno-javowego i do tej pory nie potrafię wytłumaczyć, skąd takie zainteresowanie?! Czyżby IBM WebSphere BPM cieszył się takim zainteresowaniem, czy ogólnie BPM z Activiti, czy wręcz formuła spotkania, gdzie można było poznać wiele w ciągu niewielkiej ilości czasu. Sądzę, że to ostatnie i zamierzam to wykorzystać już niebawem.

Chciałbym tym samym przeprosić Macieja Próchniaka za swoje wyjście w trakcie jego prezentacji Activiti, na którą ostrzyłem sobie zęby oraz za zabranie kamery. Liga koszykówki stała się powodem, a napalonym na nią niemiłosiernie. Wybacz Maćku!

21 stycznia 2011

A może do teatru? "Piąta rano" nie przegap!

5 komentarzy
Jak wielu z Was mogło zauważyć, od jakiegoś czasu, dokładnie od początku roku 2011, nie upubliczniam wpisów na tym blogu. Powodem jest próba uporządkowania moich aktywności, aby efekt był proporcjonalny do włożonego wysiłku. Ot, jedno z wielu deklaracji, które obiecywałem sobie, że zrealizuję, a jakoś tak nie wychodziło.

Tym razem jest inaczej. Z nowym rokiem przeniosłem się na angielskojęzyczny blog pod adresem http://blog.japila.pl. Tutaj było po polsku (i tak zostanie), ale na pewno będzie mniej technicznie, jeśli w ogóle, a tam wyłącznie po angielsku i profesjonalniej.

Rozdwojenie moich poczynań pozostanie, bo w końcu żyję i funkcjonuję w Polsce, moim językiem jest przede wszystkim polski, a jedynie/aż technicznie ujawniam swoje alter ego, które swoje poczynania opisuje na wspomnianym blogu japila.pl.

I kiedy ostatnio pojawiłem się na monodramie muzycznym "Piąta rano" Fundacji Artystycznej MŁYN zamurowało mnie - jak to muzycznie można zrobić tak ciekawe przedstawienie! Żona wiedziała, że może mnie wycofać, gdybym wiedział, że to muzyczna imprezka i kolejny raz okazało się, że często dobrze niewiedzieć, aby posmakować nowego. A było na prawdę smacznie! Występ cudo!

Zainteresowanych odsyłam na stronę monodramu, albo od razu do rezerwacji biletów, które kosztują jedynie 15 PeeLeNów:

* mailowo: rezerwacje@fundacjamlyn.pl
* telefonicznie: 0 519 672 356
* SMS-em: 0 519 672 356

Ach, bym zapomniał o gdzie i kiedy:

22 stycznia godz. 19:00
Scena Staromiejska SCEK
ul. Jezuicka 4

03 stycznia 2011

NetBeans 7 i Add Embeddable EJB Container, Create JUnit Tests oraz Code Generation in pom.xml

1 komentarzy
W Java EE 5 udostępniono możliwość uruchamiania Java Persistence (JPA) 1.0 poza środowiskiem serwera aplikacyjnego - można przeczytać o tym w moim artykule Java Persistence API w samodzielnej aplikacji.

W Java EE 6, poza JPA 2.0, można jeszcze uruchomić kontener Enterprise JavaBeans (EJB) 3.1 oraz kontener Contexts and Dependency Injection (CDI) 1.0. O tym pierwszym - EJB 3.1 - pisałem w Embeddable EJB 3.1 z GlassFish 3.1 i NetBeans IDE 7.0, a o drugim - CDI - w Contexts and Dependency Injection (CDI) praktycznie - zestawienie środowiska z JBoss Weld, Arquillian i Apache Maven 2.

Zacząłem drążyć temat EJB 3.1 z NetBeans 7 i całkiem przypadkiem doszukałem się dwóch użytecznych funkcji - Add Embeddable EJB Container oraz Create JUnit Tests. Sprawdźmy je w działaniu zamiast rozwodzić się nad ich użytecznością (albo ich brakiem).

Cmd+Shift+N - Maven > EJB Module, podaj Project Name, np. aaa i Finish. Mamy projekt EJB zarządzany przez Apache Maven.

Cmd+N - Enterprise JavaBeans > Session Bean, wciśnij Next >, wybierz pakiet z listy w Package i Finish. I mamy komponent EJB.

Otworzy się nowa klasa ziarna EJB 3.1. W jej ciele, Ctrl+i i wybierz Add Business Method... i OK. Pojawi się nowa metoda public void businessMethod(). W jej ciele, wpisz sout i wciśnij TAB. Wpisz Witaj! W ten sposób masz gotowe do uruchomienia ziarno EJB z metodą biznesową, której zadaniem jest wyświetlenie Witaj!

Wybierz nowoutworzoną klasę NewSessionBean i z menu pod prawym klawiszem myszki wybierz Tools > Create JUnit Tests.
Pojawi się panel konfiguracyjny klasy testowej.

Zatwierdź przyciskiem ENTER.

Zaraz po tym powinien otworzyć się edytor z właśnie stworzoną klasą testującą z metodą testBusinessMethod(). Usuń linię fail("The test case is a prototype.");, np. przez Cmd+x. Test gotowy.

Uruchomienie testu - Cmd+F6.
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running pl.jaceklaskowski.jee6.abc.NewSessionBeanTest
businessMethod
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.396 sec <<< FAILURE!

Results :

Tests in error: 
  testBusinessMethod(pl.jaceklaskowski.jee6.abc.NewSessionBeanTest)

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Pojawił się błąd? Jak najbardziej oczekiwany (zajrzyj do What's the cause of this exception: java.lang.ClassFormatError: Absent Code? po więcej wyjaśnień).

Nie wiem, co informuje NetBeans 7 o konieczności pojawienia się pomocy, albo jak długo należy czekać na jej pojawienie się, ale dłuższa chwila, dwie i na projekcie pojawi się ikona z żółtym wykrzyknikiem.

Kiedy najedzie się na katalog projektu pojawi się chmurka z wyjaśnieniem powodu, dla którego pojawił się wykrzyknik - Missing Embeddable EJB Container.

Wtedy, pod prawy przyciskiem myszki znajdziemy menu Show and Resolve Problems...

Pojawi się okienko dialogowe, w którym pojawi się Missing Embeddable EJB Container z przyciskiem Add Embeddable EJB Container.
Kiedy wciśniesz przycisk, do projektu dodana zostanie zależność i repozytorium, gdzie się znajduje. Spróbuj.

  org.glassfish.extras
  glassfish-embedded-all
  3.0
  test


  
    http://download.java.net/maven/glassfish/
    http://download.java.net/maven/glassfish/
    default
  
Warto dodać, że zapoznanie się z pom.xml dla tego projektu, to wyzwanie same w sobie. Tyle kombinacji, aby uruchomić wbudowany kontener EJB 3.1 z GlassFish 3.0. Warto dla kogoś, kto chciałby poznać Mavena od podszewki (co w tym przypadku lepiej wykonałby Maven podpierając się Apache Ant przez wtyczkę maven-antrun-plugin).

A tak całkiem przy okazji mojej nauki uruchamiania wbudowanego kontenera EJB 3.1, wyczytałem w STS 70 Maven :: Test Specification: Maven Support Test Specification, że edytor pom.xml ma specjalizowany system podpowiedzi Code Generation in pom.xml. W pom.xml wciskamy kombinację klawiszy Alt+Insert i możemy wybrać jedną z kilku opcji utworzenia sekcji XMLowej.

Dla początkujących, jak znalazł.