Agile Development Using Jboss Seam @ JBoss World 2008 in Orlando
Sat, 5 Jan 2008 10:33 PM GMT
I was accepted to present at JBoss World 2008 about a couple of months ago, and I am just about done crafting my presentation.  My presentation highlights how to unit-test, integration-test, and acceptance test your jboss seam web applications. 

The presentation will use a slew of technologies from easymock to selenium.  I  only have a measly 90 minutes to go through it all, but I hope and anticipate that it will be exciting, entertaining , and informational. 

My bio and information about the presentation is here.  For complete information on JBoss World 2008 in Orlando and other presentations that will be presented, please visit jbossworld.com
1 comment for Agile Development Using Jboss Seam @ JBoss World 2008 in Orlando
Jon
Wed, 16 Jan 2008 04:31 AM GMT

If the presentation is available online, I would love to review it.
I finally have a favorite web framework.
Fri, 23 Jun 2006 04:06 PM GMT

Seam! Baby! *Drool*!

I finally found a web framework that doesn't make me cringe or belt out WTFs at a rate of 12 per hour. Plain JSF was OK but had a tremendous amount of crippling issues. Velocity scared me, and Web Work was nice but had some features that were puzzling, Struts was good for simple apps but weird and awkward when you needed to do more difficult stuff. But, alas, my opinions are my own.

JBoss Seam is impressive. Right away, it answered one of the problems that JSF always had me posing, "Why do I have to create an adapter to a session or facade bean when the functionality is already there?" The answer that JBoss Seam supplied was simple - you don't. JBoss Seam is intent on allowing you to create a business process bean that is reusable away from the web layer. Does this mean that there is complete separation from the web layer and the business service layer? No. Seam has a lot of integrated web functionality (like Phase Listening and Session Management). I will be the first to say that web functionality doesn't belong within a session bean, but the fact that it is there will not stop me from using Seam.

So, not only does JBoss Seam deal with JSF adapter issues, it also remedies JSF by making it RESTful in a push or pull style, which was something that always troubled me about JSF. On top of this, JBoss Seam makes table management a hell of a lot easier. If you have ever had to deal with data modeling and caching of data in JSF, then you know how difficult it is. Seam eases this pain by simply annotating a List attribute as a @DataModel. That's it! OK, but how does JBoss Seam handle row selection? Easy, it allows you to annotate the attribute that will eventually get selected as @DataModelSelection.

If that's not enough, keep reading. The one thing that impresses me most about this framework, the one thing that I have not seen in any other web framework, is the extraction of a business process layer! You have to check this out for yourself…

If you run the DVD Store example, and log in as the administrator, who happens to Albus Dumbledore, you will see that you can set the business process rules and that these rules can be changed on demand. The business rules are not hard coded into the web framework. Holy Crap! No more rolling my eyes when a customer wants to change business process rules yet again (not that I do that anyway ;)). With JBoss Seam, I can merely change my business process document and be done with it, no coding whatsoever.

I only touched the tip of the iceberg here. There is sooo much more packed in with this new web framework. As soon as you get the chance, take any web application and try it with JBoss Seam, which of course works with EJB 3.0. I think you’ll find that you enjoy web programming on a whole new level.

3 comments for I finally have a favorite web framework.
Matt Raible
Fri, 23 Jun 2006 04:30 PM GMT

It's good to see some positive words about Seam from someone who has used it and doesn't work for JBoss. ;0)
Norman Richards
Fri, 23 Jun 2006 06:51 PM GMT

"I will be the first to say that web functionality doesn't belong within a session bean, but the fact that it is there will not stop me from using Seam." In Seam, we try to extract the JSF details out of the beans so that you don't have any "web" functionality in your components. We haven't done this perfectly. You still need action methods when not using pageflows. I find that distastful, but it's not critical. In many examples, we use a FacesMessage component for creating UI messages. I think this should be more abstract, but it's not a huge coupling. Beyond that, almost all the other web stuff should be accomplishable through data bindings or in other classes outside the component. If you have an example where you still have to have too much "web functionality" in your components, bring it up on the Seam forums. Maybe we can find some better integration options.
Renaud Bruyeron
Mon, 26 Jun 2006 08:59 AM GMT

Seam looks very interesting indeed. Have you looked at Stripes before making your choice? My feeling is that it comes down to these 2 frameworks right now, but their philosophies are quite different: extreme lightness and ease-of-use in stripes, very advanced state-management features in Seam.
Getting JBoss 4.0.3 to work the JSF-RI
Wed, 1 Feb 2006 06:30 PM GMT

If you are trying to get JSF-RI and JBoss 4.0.3 to work with each other, you are in for a special surprise. The following code will help de-stupefy the situation:

java.lang.NullPointerException
        at javax.faces.webapp.UIComponentTag.setupResponseWriter(UIComponentTag.java:615)
        at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:217)
        at org.apache.myfaces.taglib.core.ViewTag.doStartTag(ViewTag.java:71) 

The NullPointerException is a result of a collision with the JSF-RI. This error occurs only with JBoss 4.0.3 because it comes packaged with MyFaces. The following solution was recommended by JBoss in their wiki.

Fix for the all configuration The all configuration has something missing from the all/deploy/jbossweb-tomcat5.5.sar/meta-inf/jboss-service.xml file. If using the all configuration with JSF you should edit the value of the FilteredPackages attribute to make it look like this:

<attribute name="FilteredPackages">javax.servlet,org.apache.commons.logging</attribute>

Note that there should be no space on either side of the comma. For more details on this issue, see http://jira.jboss.com/jira/browse/JBAS-2349

Using the JSF Reference Implementation To use the JSF Reference Implementation instead of the bundled MyFaces implementation, simply delete the jbossweb-tomcat55.sar/jsf-lib directory. Then, package the RI in your WEB-INF/lib directory as usual.

Note: You may also need to delete temp directories such as server/default/tmp and server/default/work. See comment by Geoffery in http://jira.jboss.com/jira/browse/JBAS-1508

I hope that helps.

1 comment for Getting JBoss 4.0.3 to work the JSF-RI
Sean Kang
Fri, 23 Mar 2007 11:04 PM GMT

I am using 4.0.5 jboss and that FilteredPackages is as you mentioned but I am getting that same error. &nbsp;

In the long run, I want to use ajax4jsp.

Please advice some help.  Thanks!