22 października 2008

NetBeans IDE 6.5 RC, NetBeans Decathlon oraz przyszłość Spring-DM i SpringSource dm Server

Ostatnimi dniami, a w zasadzie tygodniami, zaangażowany byłem w projekt-pilota, w którym dwa zewnętrzne systemy z własnymi mechanizmami generowania identyfikatorów zleceń synchronizowane były przez IBM WebSphere Process Server za pomocą usługi wiązania (ang. relationship service). Do tej pory taką integrację wyobrażałem sobie przez zastosowanie odpowiednich adapterów, a tu proszę, wystarczyło oprzeć się o usługi sieciowe (web services), niewielką dawkę programowania w Javie i...hula! Bajka. Ale nie o tym dziś ja (chociaż nie mogłem się opanować, aby nie skrobnąć co nieco, taki jestem zachwycony rezultatami).

Dzisiejszy dzień również obfitował w nowości, których kompletnie się nie spodziewałem. Zacząłem niewinnie od pobrania ostatniej wersji rozwojowej NetBeans IDE 6.5, którego wydanie RC właśnie się pojawiło. Jako (obecnie mniej aktywny) uczestnik programu NetBeans Community Acceptance Test (NetCAT) 6.5 przywykłem do pobierania wersji rozwojowych, ale dla mniej żądnych wrażeń proponuje się skorzystanie z wersji NetBeans IDE 6.5 Release Candidate, a w nim:

The focus of NetBeans IDE 6.5 is simplified and rapid development of web, enterprise, desktop, and mobile applications with PHP, JavaScript, Java, C/C++ , Ruby, and Groovy. New features for 6.5 include a robust IDE for PHP, JavaScript debugging for Firefox and IE, and support for Groovy and Grails. This release also offers a number of enhancements for Java, Ruby and Rails, and C/C++ development. Java feature highlights include: built-in support for Hibernate, Eclipse project import, and compile on save. The Release Candidate improves on the support offered in NetBeans 6.5 Beta.

The final NetBeans IDE 6.5 release is planned for November 2008.


Poza typowymi cechami NetBeans IDE, do których przywykłem i stosuję, moją uwagę przykuło wsparcie dla Groovy i Grails, o którym słyszałem, że jest na przywoitym poziomie (piszę bez entuzjazmu, gdyż samemu nie miałem jeszcze możliwości popróbowania się z tematem). Właśnie nieprzeciętne wsparcie dla Java EE oraz inne elementy, jak wsparcie dla Grails, powodują, że nie jest to narzędzie, koło którego można przejść obojętnie. A jeśli do tego dodać, że NetBeans IDE właśnie skończyło 10 lat i rozpoczęto ogólnoświatową imprezę NetBeans 10th Birthday (aka NetBeans Decathlon), to nie tylko można skończyć projekt krócej (korzystając z funkcjonalności NetBeans), ale również i dobrze na tym "zarobić". Więcej informacji na wspomnianej stronie NetBeans Decathlon. Cała zabawa to jedynie zebranie 50 punktów przez różnego rodzaju aktywność wokół NetBeans i "a limited edition NetBeans 10th Anniversary Shirt" jest Twoja. Moje pierwsze 15 punktów to wzmianka o mojej kolejnej, dzisiejszej niespodziance - wsparciu dla GlassFish v3 "Prelude", w którym można skorzystać z...EJB 3.1! Sądziłem, że wsparcie dla EJB 3.1 to domena Apache OpenEJB, którego wydanie 3.1 jest właśnie głosowane - [VOTE] OpenEJB 3.1 take 1, co, za sprawą NetBeans IDE, okazało się być nieprawdą. Otwieram nowiuteńką rozwojową wersję NetBeans IDE 6.5 i po chwili pojawiła się informacja o nowych aktualizacjach wtyczek.


Zaintrygowała mnie zmiana wersji GlassFish v3 "Prelude" na 1.0. To pierwsza wersja stabilna, więc zaraz zabrałem się za wyszukiwanie o tym informacji. Niedługo trwało, kiedy trafiłem na NetBeans 6.5 Beta is out - GlassFish 'Prelude' included z dnia moich urodzin (!), gdzie w komentarzach znalazłem "I got to know modules for ejb 3.1 and JSF (mojarra) available for V3. For Servlet 3.0, does it have any similar EDR modules available?". "Co?! EJB 3.1 już dostępny w GlassFish v3?!" - pomyślałem. Kolejne wyszukiwanie i trafiłem na EJB 3.1 in GlassFish V3 TP2. Nie pozostaje przyjrzeć się specyfikacji EJB 3.1, która nie tak dawno pojawiła się w wersji EJB 3.1 public review draft. Ech, nie pomyślałem o tym wcześniej, ale nadchodzące moje niedzielne wystąpienie podczas NetBeans Day 2008 w Gdańsku mogło być właśnie o EJB 3.1 i NetBeans. Następnym razem. Sądzę, że moje "Zaawansowane EJB3 z NetBeans 6.5" wciąż może być interesujące i warte rozważenia ;-)

I tak dzień mijał, kiedy trafiłem na ciekawą dyskusję o przyszłości Spring Dynamic Modules (Spring-DM) w kontekście pojawienia się SpringSource dm Server. Czytając dyskusję Spring DM Roadmap, należałoby raczej zająć się rozpoznawaniem produktu SpringSource dm Server niż Spring-DM, który:

"Firstly on a 1.2 release that will fill in the long-promised configuration administration support, making the core programming model feature complete."

oraz

"The 2.0 branch is where we are implementing the OSGi Blueprint Service (RFC 124) that will be part of OSGi R4.2. The Spring DM project will be the RI for this forthcoming specification (which is essentially a standardization of Spring DM + the core Spring beans support)."

i dalej

"So in summary, the future of Spring DM is to move towards becoming an RI for the standardization of the existing DM model, as the OSGi Blueprint Service. The Spring DM project provides an open source (and soon standards-based) programming model for use on any OSGi Service Platform."

Wydaje się, że praca przy Spring-DM wre, ale daje się odczuć kierowanie wysiłków ku SpringSource dm Server, zamiast rozbudowywać Spring-DM, który de facto jest jego składową.

"We will maintain the existing web support in Spring DM, but are not planning to take this any further in terms of significant new features etc. We're running into a law of diminishing returns there in terms of how good an experience we can deliver on a vanilla OSGi Service Platform. This was one of the motivations for creating the dm Server in the first place - to provide the best environment we could for OSGi-based enterprise applications and there are many issues that we can resolve much more easily in the dm Server world. [The SpringSource dm Server is of course also freely available in open source]."

Nie pozostaje nic innego, jak przyjrzeć się SpringSource dm Server i OSGi 4.2 - OSGi RFC 124 ("OSGi Blueprint") przygaszając działalność wokół Spring-DM do niezbędnego minimum.