Seam 2.0

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.

  • 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 …

4 thoughts on “Seam 2.0”

  1. 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.

  2. 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é.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *