pátek 5. listopadu 2004

Články na víkend

Tento týden vydal na pěknou úrodu zajímavých článků. Velice mě potěšily nové články Petra Lazeckého, které rozšířily seriál Bezpečnostní toulky. Slibně se rozrůstá seriál o technologii WebML Petra Zelenky. WebML (Web Modeling Language) mě na první pohled zaujala - uvidíme, vyzkoušíme a dáme vědět.

A pokud se budete nudit, můžete vyzkoušet předfinálovku Firefoxe 1.0 RC2 viz Vyšel český i anglický Firefox 1.0 RC2

Gavin King nejen o Hibernate 3

Pokud jste se alespoň trochu zajímaly o problematiku ORM (object to relation mapping) frameworku, pak jste jistě narazily na stálici jménem Hibernate, toho času pod křídly JBoss. Ne nadarmo bývá Hibernate označován de facto za ORM standard.

Na stránkách Javafree.com.br vyšel rozhovor s Gavinem Kingem. Pokud Vám toto jméno nic neříká, pak vězte, že se jedná o duchovního otce a vývojáře Hibernate, a v neposlední řadě člena skupiny pracující na JSR-220 (specifikace EJB 3.0).

Z rozhovoru lze vyčíst některé signifikantní kroky, kterými se bude ubírat Hibernate. Ze skupiny odpovědí lze vyčíst, že Hibernate bude výrazně ovlivněn právě specifikací EJB 3.0, kterou by Sun rád viděl i mimo klasické j2EE kontejnery. Gavin přímo mluví o tom, že Hibernate bude tuto specifikaci implementovat.

Další výrazný posun se týká ve využití rysů Javy 5.0, kde by měly práci resp. mapování usnadnit anotace. Ještě bych zmínil malé pošťouchnutí specifikace JDO, pro kterou nevidí po nástupu EJB 3.0 místo. Diskusi k článku je možno najít na TSS Interview with Gavin King on Hibernate 3.

Související články

úterý 2. listopadu 2004

Eclipse a drobné maličkosti - uživatelské šablony

Nejsem typ uživatele, který by s železnou pravidelnosti hraničící se sadomasochismem, prozkoumával všechny vlastnosti IDE Eclipse, a to je možná škoda. Asi málokdo neocení podporu vestavěných templates (šablon) v Eclipse a já nejsem výjimka. Přiznám se rovnou, že jsem používal pouze ty jednodušší např. sysout => System.out.println().

Eclipse umožňuje velice snadno vytvářet vlastní templaty. Tuto vlastnost jsem naplno ocenil při včerejším rozjímání nad usnadněním psaní testovacích metod, které jsou společné všem objektům. Specielně se mi jednalo o testovací metody pro equals a hashCode.

Všechny šablony, jak předdefinované tak uživatelské se nalézají v okně Templates viz Window >> Preferences >> Java >> Editor >> Templates.

Zobrazení okna pro definici a úpravu šablon

Krom předpřipravených šablon, si můžeme nadefinovat vlastní a to pro javovský kód i Javadoc. Přes magické tlačítko New se pustíme do nové šablony.

Zobrazení okna pro definici nové šablony

Name
Jméno šablony, pod kterým bude dostupná. Doporučuji něco krátkého a smysluplného.
Description
Textový popis šablony.
Context
Výběr kontextu šablony, která může být použita pro javovský kód a nebo pro Javadoc.
Pattern
Vlastní obsah šablony.

Při psaní šablony by se vám mohly hodit předdefinované proměnné, které se nalézají pod tlačítkem Insert variable. Tímto jsme se dostali pomalu k proměnným, které představují motor šablon. V rámci šablony si můžete definovat libovolné množství proměnných, ale jejich síla se ukáže při opakovaném použití.

Využití proměnných

 
${objectUnderTest} o = new ${objectUnderTest}();
try{
    o.hashCode();
}catch(NullPointerException n){
    fail();
}

${objectUnderTest} o1 = new ${objectUnderTest}(${objectKey});
${objectUnderTest} o2 = new ${objectUnderTest}(${objectKey});

assertTrue(o1.hashCode() == o2.hashCode());
 

Tato šablona vytváří kód pro testování metody hashCode pro POJO objekty. Proměnné jsou uvozeny znakem $ a jejich název je uzavřen v složených závorkách. V této šabloně jsou definovány proměnné objectUnderTest a objectKey. Při použití šablony se definování hodnoty proměnné pronese do všech deklarací, bude vidět opodál.

Aktivace šablony

Pokud máme šablonu připravenou k použití, nic nám nebrání v jejím vyvolání v editoru kódu. Šablona se vyvolá zápisem jejího jména a stisknutím klávesové kombinace pro doplnění (ctrl + space).

Zobrazení vyvolání kontextové nabídky pro výběr šablony dle jejího jména.

Po vyvolání šablony se kolem proměnných vytvoří editovatelné boxy a přiřazení hodnoty do proměnné se pronese na všechna místa jejího užití, jak ukazuje následující obrázek (editována je proměnná objectUnderTest) .

Ukázka přiřazení hodnoty do proměnné a jejího pronesení.