Únor 17th, 2008Seam - tipy a triky
Jelikož jsem zastánce tohoto frameworku, z jichž uvedených důvodů, rozhodl jsem se sepsat pár dobrých triků, které mohou pomoci při vývoji s tímto frameworkem. Dnes začnu asi tou nezajímavější a tím je Hot Deploy, nebo-li rychlá aktualizace některých částí aplikace bez nutnosti provádět celé nahrání aplikace na server.
Hot deploy – NetBeans
Netbeans 6.0 má dost slabou, respektive nulovou, podporu pro tento framework.
Jednou z dobrých vlastností Seamu je tzv. hot deploy, kde změny na view
vrtvě mohou být aplikovány bez nutnosti provádení undeploy-deploy aplikace.
Jedná se zejména o změnu facelets stránek. Takže jak něčeho takového
dosáhnout v netbeans?
private static final String PATH_TO_DEVELOPMENT = „/home/ales/dev/java/Irminsul/Irminsul-war/web/“;
public URL resolveUrl(String s) {
try {
return new URL(„file“, "", PATH_TO_DEVELOPMENT + s);
} catch (MalformedURLException e) {
e.printStackTrace();
return null;
}
}
}
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>facelets.REFRESH_PERIOD</param-name>
<param-value>0</param-value>
</context-param>
<context-param>
<param-name>facelets.RESOURCE_RESOLVER</param-name>
<param-value>irminsulweb.FilesystemResourceResolver</param-value>
</context-param>
Díky vlastní definici „ResourceResolver“, jsou nyní jednotlivé facelets stránky načítány z cesty, která je uvedena v „PATH_TO_DEVELOPMENT“. Pro změnu stačí v NetBeans editovat nějakou facelets stránku, uložit změnu a ve webovém prohlížeči provést refresh.
Tato malá pomůcka je ideální zejména ve chvíli, kdy jednotlivé
facelets stránky obsahují různé komponenty (rich faces, ajax4jsf, atd.).
Podle toho, co jsem se dočetl v Seam dokumentaci, tak se pracuje i na
možnosti provádět hot deploy nad EJB. Otázkou je, jestli tato vlastnost
není spíš více ovlivněna aplikačním serverem, než tímto frameworkem.
Takový hot deploy nad EJB se dá sice také provést (v debug modu pro AS),
ale jedná se o velice omezené možnosti. Není možné vytvořit novou EJB za
běhu, zmenu public metod, atd. Jde tedy čistě o vnitřní implementaci
uvnitř business metod. Doufám, že se jednou dočkáme změn i v této
oblasti.
Únor 17th, 2008 at 21.04
Ahoj, diky za dobry tip, ihned zitra to vyzkousim.