03 września 2011

Embeddable EJB 3.1 z Apache OpenEJB 4, Apache Maven 3 i IntelliJ IDEA 10.5

Opublikowałem właśnie nowy artykuł Embeddable EJB 3.1 z Apache OpenEJB 4, Apache Maven 3 i IntelliJ IDEA 10.5, który kontynuuje cykl przedstawiania nowych cech specyfikacji Enterprise JavaBeans (EJB) 3.1. Chodził za mną od kilku dni i potrzeba mi było zebrać się w sobie, aby w końcu usiąść i napisać go. W końcu jest!

Zapraszam do lektury i komentarzy. Dla zwrócenia uwagi napiszę, że w samym ziarnie MySession popełniłem kilka błędów architektonicznych, w których zakładam pewne zachowanie ziarna bezstanowego mimo, że takowej nie oferuje (bez świadomej i specyficznej konfiguracji kontenera). Ciekawym komu uda się zauważyć moją pomyłkę, albo kilka? Zachęcam do dyskusji.

6 komentarzy:

  1. Czy tryb embedded działa poprawnie dopiero od wersji 4 OpenEJB? Czy to samo da się osiągnąć na aktualnej stabilnej wersji 3.1.4, a jedyne co stracimy, to pełne wsparcie dla EJB 3.1 (stabilne OpenEJB implementuje je jedynie częściowo)? Z opisu na stronie OpenEJB wynika, że tryb embedded obsługiwany jest już od dłuższego czasu.

    OdpowiedzUsuń
  2. Od 10 lat jestem w OpenEJB i powiedziałbym, że od tego czasu tryb wbudowany jest dostępny. Jest jednak różnica między tryb wbudowany w sensie produktu OpenEJB, a specyfikacją EJB 3.1. Dopiero od (bodajże) 4 mamy wsparcie dla specyfikacyjnego wbudowania przez dedykowane do tego klasy specyfikacji EJB 3.1 (nie jestem pewien o wcześniejsze wersje).

    OdpowiedzUsuń
  3. Jestem ciekaw, jak to można połączyć z GWT, tak aby EJB działało w trybie deweloperskim w kontenerze Jetty. Do tej pory podejmowałem próby (częściowo udane) z podmianą Jetty na Glassfisha (w trybie embedded) i nawet to działało, jednak OpenEJB wydaje się nieco lepszym rozwiązaniem. Z pewnością niedługo sprawdzę :)
    Masz może jakąś wiedzę na temat planowanego wydania wersji 4 OpenEJB?

    OdpowiedzUsuń
  4. Interesująca dyskusja. Jeśli aplikacje webowe, to polecam TomEE - kontener webowy od Tomcata i EJB 3.1 od OpenEJB. Nie próbowałem, ale jest aktywnie rozwijany i słyszałem dobre opinie.

    Data wydania 4 nie jest znana. Napisz na kiedy Cię interesuje i jakie funkcje, a będzie Ci dane. Serio. Sugeruję pociągnąć temat na grupie user@openejb.apache.org.

    OdpowiedzUsuń
  5. Z ostatniej chwili - trunk w openejb próbuje wydostać się z czeluści zmian i zmierza ku wydaniu - beta1 ma być wkrótce (najpierw trzeba wyczyścić go ze SNAPSHOTów).

    OdpowiedzUsuń
  6. Jetty jest domyślnym kontenerem dla trybu deweloperskiego GWT, dlatego wolałbym pozostać przy nim. Oczywiście GWT umożliwia podmianę kontenera (tak jak pisałem, udało mi się odpalić Glassfisha), jednak ze względu na częstość zmian w GWT wolałbym pozostać przy domyślnym. Tym bardziej że Jetty jest lekkie i zadowalająco szybkie. Oczywiście później taka aplikacja będzie osadzona na pełnoprawnym serwerze aplikacji.
    Tak naprawdę nie potrzebuje tego na już. Od dłuższego czasu ciekawi mnie temat integracji GWT z EJB, przy czym wielokrotnie próbowałem już wielu sposobów, łącznie z wywołaniami części EJB osadzonej na serwerze aplikacji poprzez RMI z trybu deweloperskiego GWT. Jeśli Jetty+OpenEJB wypali, spokojnie będzie można odpalić tryb deweloperski w Jetty bez zbędnych komplikacji.
    Cieszy natomiast fakt, że niedługo można spodziewać się pierwszej bety. Ze SNAPSHOT'ami wiadomo jak jest, raz odpalisz projekt - zadziała, drugim razem już nie.

    OdpowiedzUsuń