25. srpna 2008

JSF - FacesTrace a MyFaces Orchestra

Teprve nedávno jsem začal používat JSF a musím se přiznat, že se v tom pořád tak nějak plácám. Jsem zvyklý, že při programování mám vždy vše pod kontrolou, ale tady z toho takový pocit nemám. Ale toto téma si nechám až na nějaký další článek.

V tomto článku bych chtěl zmínit dvě knihovny, které mi celkem zpříjemnily mojí práci s JSF.

FacesTrace

Pokud nastane nějaký problém s JSF, tak někdy je dost těžké vůbec zjistit příčinu problému - skoro žádné logování, skoro žádné ladící informace. Tato knihovna v tomto ohledu aspoň trochu pomůže.

Použití je velice jednoduché - přidá se knihovna k aplikaci a na stránce určené k ladění se použije tag <ft:trace />. Někdy je ještě nutné přidat mapování do web.xml.
Ukázku poskytnutých informací lze vidět zde.

MyFaces Orchestra

Při práci s JSF dost často nestačí ukládat proměnné jen do rozsahu requestu (pokud tedy chceme zachovat "rozumnou eleganci" vývoje s JSF). Potom musíme sáhnout po session, což není ideální, minimálně z pohledu nároků na paměť a škálovatelnosti (další důvody jsou uvedeny zde).
MyFaces Orchestra nabízí něco mezi - konverzaci. MyFaces Orchestra vyžaduje přítomnost Springu, protože využívá možnosti Springu si definovat vlastní rozsah (scope) pro uložení beanů resp. JSF managed beanů. Je možné využívát dva typy konverzací:
  • automatická - konverzace se automaticky vytvoří při přechodu na bean, který je definován pro rozsah konverzace. Při přechodu na bean s jiným rozsahem (request, session) se konverzace automaticky ukončuje.

  • manuální - řízení začátku a konce konverzace je plně na programátorovi pomocí dostupného API.

Kromě toho knihovna ještě nabízí "persistence in conversation". Tedy něco jako "session in view", ale zde pouze v rozsahu konverzací.

Knihovna je nezávislá na implementaci JSF API, tedy funguje nejen nad Apache MyFaces, tak i nad Sun RI. Knihovny jsem zkoušel s JSF 1.1.


Pokud máte nějaké další tipy na knihovny, které pomohou s vývojem v JSF, tak sem s nimi prosím :).

3 komentáře:

cyril.sochor řekl(a)...

FacesTrace prave zkousim, vypada to hezky, trochu jednoduse, uvidime, jak se osvedci.


Na konverzace a dalsi ulehceni prace s JSF pouzivame Jboss Seam.

Michal řekl(a)...

Ked je potrebne pre MyFaces Orchestra pouzivat Spring, preco nesiahnut po Spring Web Flow. Mozno by sa zislo porovnanie.

Michal řekl(a)...

Zase som nieco postol bez toho, aby som skusil google:)
Takze porovnanie sa da najst priamo na wiki Orchetri (a taktiez porovnanie s inymi frameworkami (seam, shales)):
http://wiki.apache.org/myfaces/Orchestra_and_other_Dialog/Conversation_Frameworks