2011. június 20., hétfő

JRebel: Gyorsítsd fel a fejlesztést!

Enterprise Java alkalmazások fejlesztésénél az egyik legnagyobb problémát a hosszú telepítési idő okozza. A Java osztályokon - legyen akár EJB vagy JPA entitás - végrehajtott módosítások után, ha látni szeretnénk a változtatások eredményét, újra kell buildelni és telepíteni a teljes alkalmazást, ami sok időt vehet igénybe a fejlesztés folyamatából.

A JRebel egy JVM-be épülő plugin, ami segít elkerülni a folyamatos alkalmazás újratelepítést, azáltal hogy az IDE-ben végrehajtott módosításokat azonnal elérhetővé teszi a telepített alkalmazáson.

Működését tekintve a java osztálybetöltőt terjeszti ki, hogy képes legyen kezelni és újratölteni a megváltozott osztályokat. A betöltendő osztályok keresésénél a classpath-t (beleértve a WEB-INF/classes könyvtárat) és a rebel.xml fájlban meghatározott helyeket figyeli, a módosult osztályok meghatározására pedig a fájlrendszerbeli időbélyeget használja fel. Ahhoz, hogy a JRebel biztosítani tudja az alkalmazás folyamatos működését, az osztályok újratöltése után a régi osztály példányokat is megőrzi. Ez viszont azzal jár, hogy egy újonnan felvett példány változó nem lesz a konstruktor által inicializálva a meglévő példányoknál, mivel a konstruktor nem kerül ismételten meghívásra.

A JRebel támogatja a főbb alkalmazásszervereket (JBoss, WebSphere, GlassFish, Weblogic) és az Apache Tomcat szervlet konténert is. A képességei kiterjednek a mezők, metódusok, annotációk, ősosztályok, interfészek, EJB-k, JPA entitások, JSP, JSF, XML és property fájlok módosítására, felvételére és törlésére valamint jópár keretrendszer (JBoss Seam, Spring, Vaadin, GWT, Struts, Wicket stb...) támogatására is. A teljes listáról a feature comparison matrix oldalon található bővebb leírás.

A telepítéshez és a fejlesztőkörnyezethez történő beállításhoz egy nagyon jó dokumentáció és több tutorial is tartozik! A konfigurálást követően érdemes lecserélni a rebel.xml fájlban található lokális projekt elérési útvonalat egy custom JRebel propertyre, így a fejlesztő csapat minden tagja a saját környezetének megfelelően állíthatja be ezen értéket.

Jómagam már 2009 decembere óta több projektben is használtam a JRebel-t és kiválóan működik! Nálam kiérdemelte a legjobb Java tool díjat. :) 

Ne hagyd ki ezt a cikket sem!