Tak dlouho očekávané se stalo skutečností a dnes ráno vyšla nová verze webového frameworku Seam.
Ve verzi 2.0 se můžeme dočkat těchto změn:
- JSF 1.2 – Seam nyní vyžaduje JSF verze 1.2. Tato verze umožňuje snažší integrovaci knihoven do JSF díky širší podpoře META-INF/faces-config.xml v knihovnách. Nyní lze libovolně skládat např. ViewHandler a ELResolver jen tím, že přidáte knihovnu do classpath. Můžete tedy odstranit z Vašeho faces-config.xml (Transactional)SeamPhaseListener, SeamELResolver a můžete používat standardní com.sun.facelets.FaceletViewHandler. Integrace Seamu do Vaší aplikace je tak jednodušší.
- Možnost odstranění JSF – Seam v nové verzi snížil svoji závislost na JSF a existuje zatím experimentální podpora GWT.
- Lepší HotDeploy – nyní lze měnit aplikaci i bez restartu aplikace (redeploy).
- Podpora i ne-JTA transakcí – po této vlastnosti dlouho volali uživatelé, kteří nepoužívají EJB3 aplikační servery, ale jen servlet kontejnery jako je Tomcat. Seam přidává AbstractUserTransaction a Seam nyní podporuje tyto typy transakcí:
- JPA RESOURCE_LOCAL transakce implementující javax.persistence.EntityTransaction:
<transaction:entity-transaction entity-manager="#{entityManager}"/>
- Hibernatem spravované transakce. Lze tak používat všechny mechanizmy podporované Hibernate (JTA různých implementací, JDBC local, …)
<transaction:hibernate-transaction session="#{hiberanteSession}"/>
- Spring spravované transakce (rozhraní org.springframework.transaction.PlatformTransactionManager).
- Bez podpory transakcí:
<transaction:no-transaction />
U nás toto znamenalo více než dvojnásobné zrychlení startu aplikace v Tomcatu.
- JPA RESOURCE_LOCAL transakce implementující javax.persistence.EntityTransaction:
- Maven – od této verze je zde oficiální podpora Mavenu. Jsou připravovány balíky pro Seam a pro všechny jeho závislosti. Zatím není podpora pro seam-gen a pro „profily“ závislostí.
- rozšíření pro EL – byl rozšířen Expression Language a nyní je možné volat i metody s parametry: #{action.getInterestFor(datum)}.
- aktualizace knihoven – kromě výše zmiňovaného JSF byly aktualizovány také RichFaces, Drools, JBPM a další.
- rošáda s balíky (packages) – toto je pro uživatele spíše nepříjemná věc. V Seamu bylo přesunuto větší množství tříd a anotací. Přechod znamená znovu optimalizovat importy v IDE. Aplikace tak mezi verzemi nejsou většinou binárně kompatibilní. Věřme, že tato úprava zabrání dalším velkým přesunům v budoucnosti.
- Hibernate Search – velmi hezkým způsobem udělaná integrace s knihovnou Hibernate Search. Nyní lze fulltextově vyhledávat přímo instance objektů.
- groovy – lze psát části nebo i celou aplikaci v jazyce Groovy
- nové ukázkové příklady – bylo přidáno několik ukázkových projektů a některé z nich jsou i docela rozsáhle (např. wiki používaná např. i na blogu in.relation.to.
- asynchronní operace – bylo rozšířeno zpracování asynchronních operací o podporu knihovny Quartz.
- oprava chyb – bylo opraveno spoustu chyb.
Seznam nových vlastností je opravdu zajímavý. Takže šupky jej vyzkoušet …
Petře, upravíš i softeu archetype pro seam 2.0 ?
A ja dnes rano stahnul CR3, to jsi to nemohl napsat driv? 😉
Take po nem pokukuji, pravdou je, ze te konfigurace je mene nez v predchozich verzich.
to rozšíření pro EL: Volani metod s parametry bylo prece jiz v Seamu 1.2? Nebo mi neco uniklo?
Trochu me desi ta volnost vuci JSF. Takhle to vypada, ze z toho nakonec vznikne samostatny framework, ktery si spolecne s hibernate obhospodari vse sam.
finc: je pravda, že toto bylo již ve 1.2, ale jen pro volání akcí. Nebylo možné použít parametr např. pro kolekci u <h :dataTable />.
Nemyslím, že by cílem autorů Seamu bylo udělat nový framework ala spring. Cílem větší volnosti na JSF je lepší podpora např. uvedené GWT a dalších webových frameworků.
Pořád platí, že Seam vylepšuje JSF tak, aby bylo použitelné.