Help

The 1.1 release involved a lot of hard work in the guts of Seam, refactoring and fixing bugs, and working with tricky code that handles concerns like clustering and concurrency. Sure, there are many new features, but a lot of the real work is less user-visible. Now that this hard stuff is out of the way, it lets us add some interesting new stuff pretty quickly. Here's a quick roadmap for the next few months:

Spring integration package

We're seeing regular requests from people who have existing DAOs and business logic written using the Spring Framework and want a migration path to Seam that lets them re-use this existing code unchanged. The planned Spring integration package will provide:

  • injection of Spring beans into Seam components, using @In
  • access to the Spring beans in the EL
  • injection of Seam components into Spring beans using Spring XML
  • integration of the Spring DAO framework with Seam-managed persistence contexts

So, you'll be able to easily call existing code written in Spring from your Seam component, JSF views, or jBPM process definitions, and have that code be able to take advantage of Seam's conversation-scope persistence contexts. For the first time, you can have Spring code that isn't vulnerable to LazyInitializationException!

We'll probably even go as far as:

  • The ability to treat a Spring bean as a Seam STATELESS JAVA_BEAN component, with a full stack of Seam interceptors

In which case a class can simultaneously be a Seam component and a Spring bean, the same way a class can simultaneously be a JSF managed beans, an EJB3 session bean, and a Seam component today.

Seam/Security

The most-requested feature in the Seam forums is security. Unfortunately, the security-related specifications did not go through the same process of self-examination and improvement in Java EE 5 that some other specifications (EJB) did, and so there is now a yawning hole, exactly where the platform should strongest. (Today the most inadequate specifications in Java are the portlet spec, the atrocious servlet spec, and any JSR relating to security.) Seam 1.1.5 will introduce Seam/Security, an extension to Seam that provides:

  • a usable authentication layer
  • an ACL based permissioning model
  • an optional (customizable) user/role model
  • a totally cool (at least we think so) authorization mechanism based upon EL and Drools

The permissioning model lets you do row level security by writing rules that refer to the actual object instance that we are checking permissions for.

A subsequent release will also provide a console for administration of permissions, users/roles and rules. OK, I'm sure that sounds pretty vague now, but stay tuned.

Seam and iText

Generating PDF is amazingly unsexy, but also incredibly useful. Seam 1.1.5 will provide a library of JSF controls for iText , letting you quickly create JSF templates that are capable of rendering PDF, Text and RTF. This will be as easy to use as:

<f:view [=>xmlns:f=]"=>http://java.sun.com/jsf/core"
        [=>xmlns:it=]"=>http://jboss.com/products/seam/itext">
    <[=>it:paragraph]>Hello World!</=>it:paragraph>
</f:view>

Integration of seam-gen with Hibernate Tools

Rails has made commandline tools popular for web development, and was the inspiration behind seam-gen. But I'm one of those recalcitrant IDE kinda guys, and I expect tooling to be properly integrated with Eclipse. We'll be updating the GUI for Hibernate Tools to take advantage of the new templates in Seam 1.1, which will let you do everything you can do today using seam-gen, totally within Eclipse.

Seam/WS

We've been promising for months that Seam is the killer component model for SOA. Unfortunately, we got so bogged down in Seam 1.1 that we're well behind on our original plan to deliver this in 2006.

Seam 1.2 will integrate Seam with the Java EE 5 Web Services layer and provide support for service conversations in its context model (I've not yet decided whether this calls for a new SERVICE_CONVERSATION context, or whether it is just a different interpretation of the existing CONVERSATION context for a WS invocation. Eventually, Seam/WS will also support service orchestration and conversation recovery via jBPM.

Actually, Seam/WS will just be one piece of a larger initiative to bring Seam to ESB and SOA environments, but at present this idea is mostly speculative.

Look for a beta release of Seam 1.2 in Q1.

4 comments:
 
18. Dec 2006, 08:32 CET | Link
Srgjan Srepfler
Congrats on 1.1. This sounds very promising, keep those betas coming and we'll be testing them!
I think many of us that already develop with spring will find your roadmap exciting and I think it might prove a nice bridge so that we might add jBPM to our project as well. Perhaps (if it can be modularized) the integration bit might become a part of the spring-modules project? If we are already using acegi (spring security) do you think seam might pick up that configuration and apply it transparently? I have read your post that acegi is not the silver bullet so I won't insist :)
Thanks Gavin for all the work in putting these great projects together and even with your firm beliefs on simplifying the stack and supporting EJB3 you are still taking in consideration other users that went the spring way. Perhaps a middle ground is possible?
ReplyQuote
 
18. Dec 2006, 17:49 CET | Link
Michael Pld
I totally agree with Srgjan that you guys should consider packing Acegi into Seam's Spring integration package.
 
19. Dec 2006, 02:11 CET | Link
Gavin
We looked closely at Acegi, and it turned out that it just wasn't going to work well for us. However, if you make use of the spring integration stuff, you will certainly be able to use Acegi with your Spring components, all in the context of a Seam app.
 
22. Dec 2006, 06:25 CET | Link
Fernando
You are right when say "The most-requested feature in the Seam forums is security".

I'm just learning seam and I like it very much (contrasted with Struts - Spring/JSF), I saw that is easy and intuitive, but I stopped when I want to configure the security, just now I'm trying to find some nice way to configure the security in a seam application.

Do you know some way I can use in order to implement security in a seam application at this time? or should I only wait the next seam release?
Post Comment