A következő címkéjű bejegyzések mutatása: JRebel. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: JRebel. Összes bejegyzés megjelenítése

2012. január 4., szerda

Hasznos Eclipse pluginok Java alapú fejlesztéshez

Már elég régóta használok Eclipse-t a fejlesztéshez és mostanra összegyűlt pár hasznos plugin amiket mindig telepíteni szoktam, így most összeírtam ezeket. Az Eclipse Marketplace (Help/Eclipse Marketplace...) bevezetése óta, szerencsére a szükséges pluginok összevadászása is gyorsan megvan, nem kell sokat keresgélni.
JBoss, Hibernate és JSF alapú projectek fejlesztéséhez elengedhetetlen. Segítséget nyújt a projektek generálásához, kódok kiegészítéséhez, EJB-QL lekérdezések real-time teszteléséhez, JBoss ESB és JBPM-es fejlesztésekhez is.

JRebel plugin
A blogom olvasóinak gondolom nem kell bemutatnom a JRebel-t, nélkülözhetetlen eszköz Enterprise Java fejlesztéshez! A hozzákapcsolódó plugin megkönnyíti a telepítést és a konfigurálást is.

Eclipse Memory Analyzer plugin
Az EMA egy kiváló Java Heap analizáló kiterjesztés, ami segít a memory leak-ek megtalálásában, továbbá hasznos információkat szolgáltat arról, hogy milyen objektumok foglalják a memóriát! A legújabb fejlesztéseknek köszönhetően nemcsak SUN-os, hanem IBM Java-s heap dump-ot is analizálhatunk vele.
Log fájlok nézegetésére szolgáló plugin, a console view-hez hasonló működéssel. Erre a pluginra akkor volt szükségem amikor egy Websphere 6.1-es fejlesztésénél áttértünk a RAD folytonos belassulása miatt Eclipse-re és ott is fontos volt a napló állományok kényelmes követése. A plugin bevált, azóta is ezt használjuk!

Java Decompiler plugin (JAD)
Ez a tool lehetőséget ad a Java class fájlok visszafejtésére és analizálására. Hasznos lehet ha elveszett Java forrásainkat akarnánk a class fájlokból visszaállítani vagy ha egy nem open sorce Java library osztályainak tartalmába szeretnék betekintést nyerni! Van egy standalone verziója is JD-GUI néven.

Subclipse plugin
A népszerű Subversion-hoz (SVN) készült Eclipse plugin. Már régóta használom, gond nélkül működik.

FindBugs plugin 
A FindBugs felfedi a kódban a gyakori programozói hibákat, bad practice-eket és javaslatokat ad a kijavításukra. Pl.: objektumok összehasonlítása == operátorral; hashCode() nélküli equals() metódus; stb... Létezik még egy findbugs-contrib kiegészítő is, ami további hiba detektorokkal egészíti ki a keresést. Érdemes mind kettőt telepíteni!
A findbugs-hoz hasonló, potenciális Java hibák keresésére szolgáló plugin, ami segít megtalálni a nem optimális kódokat, lehetséges bugokat és a túlkomplikált kifejezéseket is. Jól paraméterezhető és egyszerűen szűkíthető a detektálandó hiba típusok köre, továbbá lehetőségünk van saját hiba detektáló kiterjesztéseket is beilleszteni! A PMD pluginhoz tartozik még egy paraméterezhető Copy-Paste-Detector (CPD), amivel segíthetünk kiiktatni ezt a rossz programozói szokást! :)

Checkstyle plugin
Szintén egy statikus kód ellenőrző plugin, azonban ezzel a kódolási standardokra fogalmazhatunk meg szabályokat. pl.: maximum 500 soros lehet egy Java osztály, legfeljebb 3 paramétere lehet egy metódusnak; a paraméternevek nem tartalmazhatnak ékezetes betűket; stb... A PMD-hez hasonlóan ez is jól paraméterezhető és egyedi szabályokkal is bővíthető.
Különböző metrikákat tudhatunk meg a kódunkról és az osztályok közötti csatolásról, melyeket grafikusan is megtekinthetünk! pl.: Ciklomatikus komplexitás; kohézió, stabilitás, stb...
A CodePro Analytix szintén egy hasznos tool amit a Google fejleszt. Az előbb említett statikus kód analizálók tulajdonságait ötvözi és kiegészíti kód lefedettség ellenőrzéssel valamint automatikus unit teszt generálással is, bár ez utóbbit azért kezeljük óvatosan! A statikus kód analizálók közül ez tekinthető a legteljesebbnek.


Érdemes még megnézni az Eclipse Marketplace toplistát, mert rátalálhatunk egy-két hasznos kiegészítőre! A jövőben még bővíteni fogom ezt a bejegyzést, így a későbbiekben is látogass majd vissza! .)

2011. november 19., szombat

Lejárt JRebel licence ingyenes megújítása

Nemrég írtam egy ismertetőt a JRebel-ről, de akkor nem említettem hogy sajnos csak 30 napig használható ingyenesen. Ha ezután is használni szeretnénk, frissíteni kellene a licence-t, ami bizony komoly költséget is jelenthet. Szerencsére erre is van megoldás - méghozzá kettő is -, így most megosztom ezeket a blogom olvasóival!

Az első lehetőség, hogy kérünk a JRebel-től egy új licence-t. Persze nem a meglévő meghosszabbítását, hanem egy újat! :) A JRebel legelső telepítését normál módon végezzük el a manual alapján, amihez használhatjuk a jar installert vagy az Eclipse plugin-on keresztüli telepítést is. Miután lejárt a licenszünk, látogassunk el a http://www.zeroturnaround.com/jrebel/eclipse-eval/ oldalra, ahonnan igényelhetünk egy újat. Itt csupán annyi a megkötés, hogy egy e-mail címet csak egyszer regisztrálhatunk be az új license kéréséhez. Használjuk a YOPMail-t. Ezután email-ben csatolva megkapjuk a jrebel.licence fájlt amit másoljuk be a JRebel telepítési könyvtár alá, ami nálam pl. a /usr/local/ZeroTurnaround/JRebel könyvtár. Ezzel a kis trükkel újabb 30 napig használhatjuk a JRebel-t! Szuper! :)

A második lehetőség pedig a JRebel Social használata, amit bárki ingyenesen alkalmazhat nem kereskedelmi jellegű alkalmazások fejlesztéséhez. Örülök, hogy a JRebel Team meglépte ezt a lépést a Java közösség érdekében!


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!