<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Seam vs Spring Web Flow Part 4 &#8211; Conclusion</title>
	<atom:link href="http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/</link>
	<description>Open Source Projects &#38; Technical Writings</description>
	<lastBuildDate>Tue, 07 Sep 2010 07:29:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: sitemap</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-14229</link>
		<dc:creator>sitemap</dc:creator>
		<pubDate>Fri, 04 Sep 2009 06:28:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-14229</guid>
		<description>&lt;strong&gt;http...&lt;/strong&gt;

url sitemap http...</description>
		<content:encoded><![CDATA[<p><strong>http&#8230;</strong></p>
<p>url sitemap http&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Links Thread #1 &#8211; JEE, Seam, Performance, Maven</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-13419</link>
		<dc:creator>Links Thread #1 &#8211; JEE, Seam, Performance, Maven</dc:creator>
		<pubDate>Thu, 13 Aug 2009 06:20:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-13419</guid>
		<description>[...] Seam and Spring Comparison (Andy Gibson)Ein sehr sch&#246;n ausgearbeiteter und ausf&#252;hrlicher Vergleich dieser beiden Frameworks. [Artikel Link] [Diskussion] [...]</description>
		<content:encoded><![CDATA[<p>[...] Seam and Spring Comparison (Andy Gibson)Ein sehr sch&#246;n ausgearbeiteter und ausf&#252;hrlicher Vergleich dieser beiden Frameworks. [Artikel Link] [Diskussion] [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy Gibson</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-11280</link>
		<dc:creator>Andy Gibson</dc:creator>
		<pubDate>Sat, 02 May 2009 03:37:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-11280</guid>
		<description>Hi Edem, 

A good list of points, I left a more complete comment over on your blog. 

Cheers,

Andy</description>
		<content:encoded><![CDATA[<p>Hi Edem, </p>
<p>A good list of points, I left a more complete comment over on your blog. </p>
<p>Cheers,</p>
<p>Andy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Edem Morny</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-11232</link>
		<dc:creator>Edem Morny</dc:creator>
		<pubDate>Thu, 30 Apr 2009 09:35:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-11232</guid>
		<description>Here is my take on this issue, but focusing only from the perspective of JSF development

http://edemmorny.wordpress.com/2009/04/29/jsf-applications-%e2%80%93-jboss-seam-or-spring-web-flow/

Will like to hear your opinion on this</description>
		<content:encoded><![CDATA[<p>Here is my take on this issue, but focusing only from the perspective of JSF development</p>
<p><a href="http://edemmorny.wordpress.com/2009/04/29/jsf-applications-%e2%80%93-jboss-seam-or-spring-web-flow/" rel="nofollow">http://edemmorny.wordpress.com/2009/04/29/jsf-applications-%e2%80%93-jboss-seam-or-spring-web-flow/</a></p>
<p>Will like to hear your opinion on this</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy Gibson</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-11133</link>
		<dc:creator>Andy Gibson</dc:creator>
		<pubDate>Tue, 28 Apr 2009 01:37:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-11133</guid>
		<description>Hey Keith, 

Thanks for commenting and congratulations on a great framework. As always, it&#039;s great to see innovation in action.

You are right about the exception handling, writing code to sit between the business objects and the view to catch exceptions and put out error messages is the best and only way to do it and still leave your business logic untainted by the view tier.

I will take a look at 2.0.7 as time permits, and in the meantime, here&#039;s wishing you all the best for SWF. 

Cheers,

Andy</description>
		<content:encoded><![CDATA[<p>Hey Keith, </p>
<p>Thanks for commenting and congratulations on a great framework. As always, it&#8217;s great to see innovation in action.</p>
<p>You are right about the exception handling, writing code to sit between the business objects and the view to catch exceptions and put out error messages is the best and only way to do it and still leave your business logic untainted by the view tier.</p>
<p>I will take a look at 2.0.7 as time permits, and in the meantime, here&#8217;s wishing you all the best for SWF. </p>
<p>Cheers,</p>
<p>Andy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith Donald</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-10861</link>
		<dc:creator>Keith Donald</dc:creator>
		<pubDate>Tue, 21 Apr 2009 14:45:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-10861</guid>
		<description>Andy,

I enjoyed reading your comparison.  I wanted to let you know we&#039;ve made significant updates to the Web Flow reference manual in in 2.0.6 and 2.0.7, particularly in the area of exception handling.  We also fixed the one typo related to currentEvent attribute access--thanks for pointing that out.

Regarding exception handling: generally the best way to handle business exceptions in Web Flow is to catch them in Web Flow Action Java code, take whatever recovery action is required (typically adding a message to the MessageContext), and return an appropriate error event the flow can handle.  This is discussed in the Rendering Views and Executing Actions sections of the reference guide.  I find I recommend use of custom generic exception handlers much less often (though I do expect we will add more convenience for general exception handling cases in future releases).

I also posted a Web Flow project update recently here: http://blog.springsource.com/2009/04/20/spring-web-flow-project-update/ you might find interesting.

Thanks for taking the time to do such a detailed comparison.  I wish you continued success using Spring and Spring Web Flow in your projects.

Keith
Web Flow Project Lead</description>
		<content:encoded><![CDATA[<p>Andy,</p>
<p>I enjoyed reading your comparison.  I wanted to let you know we&#8217;ve made significant updates to the Web Flow reference manual in in 2.0.6 and 2.0.7, particularly in the area of exception handling.  We also fixed the one typo related to currentEvent attribute access&#8211;thanks for pointing that out.</p>
<p>Regarding exception handling: generally the best way to handle business exceptions in Web Flow is to catch them in Web Flow Action Java code, take whatever recovery action is required (typically adding a message to the MessageContext), and return an appropriate error event the flow can handle.  This is discussed in the Rendering Views and Executing Actions sections of the reference guide.  I find I recommend use of custom generic exception handlers much less often (though I do expect we will add more convenience for general exception handling cases in future releases).</p>
<p>I also posted a Web Flow project update recently here: <a href="http://blog.springsource.com/2009/04/20/spring-web-flow-project-update/" rel="nofollow">http://blog.springsource.com/2009/04/20/spring-web-flow-project-update/</a> you might find interesting.</p>
<p>Thanks for taking the time to do such a detailed comparison.  I wish you continued success using Spring and Spring Web Flow in your projects.</p>
<p>Keith<br />
Web Flow Project Lead</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy Gibson</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-10094</link>
		<dc:creator>Andy Gibson</dc:creator>
		<pubDate>Sat, 04 Apr 2009 05:30:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-10094</guid>
		<description>Thanks Rocka, 

I realize that Seam has since beefed up their security API, and I&#039;m not sure whether I will get around to update the docs with limited time and the other projects I&#039;ve got going on plus trying to blog Lost. Briefly though,I think that the new Seam security puts Seam on the right track, and while it doesn&#039;t offer the same number of features as Spring security, I think they probably cover the most popular elements of it. Seam and SWF both offer a number of places to insert security and role checks into your applications. 
Disclaimer : I have to confess, we haven&#039;t upgraded to Seam 2.1.1 GA yet, and I&#039;ve only tinkered with it.

Thanks again for commenting, 

Cheers,

Andy</description>
		<content:encoded><![CDATA[<p>Thanks Rocka, </p>
<p>I realize that Seam has since beefed up their security API, and I&#8217;m not sure whether I will get around to update the docs with limited time and the other projects I&#8217;ve got going on plus trying to blog Lost. Briefly though,I think that the new Seam security puts Seam on the right track, and while it doesn&#8217;t offer the same number of features as Spring security, I think they probably cover the most popular elements of it. Seam and SWF both offer a number of places to insert security and role checks into your applications.<br />
Disclaimer : I have to confess, we haven&#8217;t upgraded to Seam 2.1.1 GA yet, and I&#8217;ve only tinkered with it.</p>
<p>Thanks again for commenting, </p>
<p>Cheers,</p>
<p>Andy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rocka</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-9911</link>
		<dc:creator>Rocka</dc:creator>
		<pubDate>Thu, 26 Mar 2009 18:35:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-9911</guid>
		<description>Andy,

Great article!  You went just deep enough on each topic to make the important points clear.

It&#039;s sad that certain posters can&#039;t see the forest for a couple of trees.  This is the LEAST BIASED discussion of the merits of Spring and Seam I have ever seen.  I would love to be shown to be wrong on this.  Please post a link, as I would sincerely like to read such an article.

Any plans to update the security section to cover Seam 2.1&#039;s identity management?</description>
		<content:encoded><![CDATA[<p>Andy,</p>
<p>Great article!  You went just deep enough on each topic to make the important points clear.</p>
<p>It&#8217;s sad that certain posters can&#8217;t see the forest for a couple of trees.  This is the LEAST BIASED discussion of the merits of Spring and Seam I have ever seen.  I would love to be shown to be wrong on this.  Please post a link, as I would sincerely like to read such an article.</p>
<p>Any plans to update the security section to cover Seam 2.1&#8217;s identity management?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy Gibson</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-9082</link>
		<dc:creator>Andy Gibson</dc:creator>
		<pubDate>Fri, 27 Feb 2009 17:15:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-9082</guid>
		<description>EJB does need a container (although now there is the embeddable container), but Seam doesn&#039;t require EJB, therefore it doesn&#039;t require a container. Configuration is usually handled as a one-off by the app generators so. You have extra configuration in Spring to set up a datasource and transaction and an entity manager for JPA. Granted, Spring does each piece of configuration in the same way making it easier, while with Seam, different things need setting up different ways. As for your testing question, it is as doable as it is to test a pojo without Spring. It&#039;s no problem as long as the pojo has no dependencies, if it does, then you need Spring or some container to inject them unless you do it manually. There&#039;s really no difference  (or at least there won&#039;t be soon) between the Spring container and an embeddable EJB container which I believe is part of EJB 3.0.

Spring can use JSF or Spring MVC and Seam can use JSF and now Wicket. The pageflow mechanism is based on the JSF navigation handler so I suppose you could use another one since all the data (conversationally managed and otherwise) is available through EL. If you look in the source for the navigational handler, all it does it see if a pageflow is running and if so, delegates the navigation to the pageflow handler. Thinking about it, it is very Spring like in that it could be replaced. 

When you start asking can I use X instead of Y with Z, you have to be careful because in many cases, Y is Z and is unreplaceable.  

The classic case is that EJB needs a container while Spring doesn&#039;t and can use any web server, but that is simply because Spring is the container, which leads to &quot;can I swap Spring out for another dependency injection provider?&quot; No, because Spring is Spring which is why many people have said that Spring leads to vendor lock in. When you start using the hibernate template and so on, you really are getting tied to Spring. 

You can use any framework with Spring as long as it is only handling the Dependency Injection / AOP pieces. The more Spring you want to use (web flow, security etc), the more restricted you are in your choices. The other factor is how well they integrate which exhibits the same mannerisms. Spring is easily integrated as long as you stick to the core. When you start using the more specicialized piece (web flow etc), then integration becomes a more manual and difficult process.   The same applies to Seam except the problem Seam has is it starts out as a 10 piece band, while Spring starts with a drummer and builds itself from there. If two instruments clash in Spring, then you add one or the other, but with Seam, you have to take one out before you can put the other in which is a more difficult process. Regardless, they both have the same limitations.

I still think of Seam as the ASP.net for Java, a one stop platform for getting things done. The idea of being able to interchange every piece of a platform will be the undoing of java as it brings complexity and probably bugs. It is a good platform as is the Spring &amp; web flow platform which I&#039;ve been investigating further over the last month or so. 

If all we had was Seam &amp; JSF or Spring and Spring Web Flow, we would all probably be happy, and rather than re-invent the wheel we would all be working on making those platforms better. I think it will be interesting to see how Web Beans will change all this at least on the web development side. 

Thanks again for you comments,

Cheers,

Andy</description>
		<content:encoded><![CDATA[<p>EJB does need a container (although now there is the embeddable container), but Seam doesn&#8217;t require EJB, therefore it doesn&#8217;t require a container. Configuration is usually handled as a one-off by the app generators so. You have extra configuration in Spring to set up a datasource and transaction and an entity manager for JPA. Granted, Spring does each piece of configuration in the same way making it easier, while with Seam, different things need setting up different ways. As for your testing question, it is as doable as it is to test a pojo without Spring. It&#8217;s no problem as long as the pojo has no dependencies, if it does, then you need Spring or some container to inject them unless you do it manually. There&#8217;s really no difference  (or at least there won&#8217;t be soon) between the Spring container and an embeddable EJB container which I believe is part of EJB 3.0.</p>
<p>Spring can use JSF or Spring MVC and Seam can use JSF and now Wicket. The pageflow mechanism is based on the JSF navigation handler so I suppose you could use another one since all the data (conversationally managed and otherwise) is available through EL. If you look in the source for the navigational handler, all it does it see if a pageflow is running and if so, delegates the navigation to the pageflow handler. Thinking about it, it is very Spring like in that it could be replaced. </p>
<p>When you start asking can I use X instead of Y with Z, you have to be careful because in many cases, Y is Z and is unreplaceable.  </p>
<p>The classic case is that EJB needs a container while Spring doesn&#8217;t and can use any web server, but that is simply because Spring is the container, which leads to &#8220;can I swap Spring out for another dependency injection provider?&#8221; No, because Spring is Spring which is why many people have said that Spring leads to vendor lock in. When you start using the hibernate template and so on, you really are getting tied to Spring. </p>
<p>You can use any framework with Spring as long as it is only handling the Dependency Injection / AOP pieces. The more Spring you want to use (web flow, security etc), the more restricted you are in your choices. The other factor is how well they integrate which exhibits the same mannerisms. Spring is easily integrated as long as you stick to the core. When you start using the more specicialized piece (web flow etc), then integration becomes a more manual and difficult process.   The same applies to Seam except the problem Seam has is it starts out as a 10 piece band, while Spring starts with a drummer and builds itself from there. If two instruments clash in Spring, then you add one or the other, but with Seam, you have to take one out before you can put the other in which is a more difficult process. Regardless, they both have the same limitations.</p>
<p>I still think of Seam as the ASP.net for Java, a one stop platform for getting things done. The idea of being able to interchange every piece of a platform will be the undoing of java as it brings complexity and probably bugs. It is a good platform as is the Spring &amp; web flow platform which I&#8217;ve been investigating further over the last month or so. </p>
<p>If all we had was Seam &amp; JSF or Spring and Spring Web Flow, we would all probably be happy, and rather than re-invent the wheel we would all be working on making those platforms better. I think it will be interesting to see how Web Beans will change all this at least on the web development side. </p>
<p>Thanks again for you comments,</p>
<p>Cheers,</p>
<p>Andy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim</title>
		<link>http://www.andygibson.net/blog/article/seam-vs-spring-web-flow-part-4-conclusion/comment-page-1/#comment-9035</link>
		<dc:creator>Jim</dc:creator>
		<pubDate>Thu, 26 Feb 2009 15:59:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.andygibson.net/blog/?p=185#comment-9035</guid>
		<description>Let me ping your experience.  I thought EJB needed a container.  Isn&#039;t there a JBoss embeddable container that&#039;s needed?  I know there&#039;s the Non-EJB (POJO) approach, but there&#039;s more configuration required for that.  Every book I&#039;ve read is pushing the EJB approach.  To be specific, can I run a JUnit test from Eclipse/Intellij without using any kind of container (AppServer, Embeddable Container) using EJB3 and Seam?

On the Spring/Seam being dependent on their &#039;own&#039; technologies, I think we&#039;re fairly in agreement.  When I look at Seam, I see, JBoss Rules, JBoss jPDL, Hibernate and all these technologies are under JBoss.  Even some people think EJB is JBoss:

http://www.devx.com/opinion/Article/21244

With Spring, you can use Struts, JSF (with or without Web Flow).  Can I swap out Seam page flow for something not under JBoss?  Didn&#039;t Seam run on JBoss AS in it&#039;s initial release and not support other AS&#039;s?

I can use pretty much any UI framework (JSF, Struts,..) with Spring, but that&#039;s not the case with Seam.  Gavin King has explicitly said he wants Seam to have few choices, which is fine.  But those few seem to be JBoss related.

I do think both companies are putting out tremendous technologies that work well together.  I just think Seam doesn&#039;t support as many, but this could be due to the maturity levels of both.

On the multiple tabs and back button issue you talked about, do both technologies support them?  I haven&#039;t run into the back button you&#039;re experiencing with Seam, but I&#039;d be curious if I can reproduce and test it out with Spring Web Flow...

thanks</description>
		<content:encoded><![CDATA[<p>Let me ping your experience.  I thought EJB needed a container.  Isn&#8217;t there a JBoss embeddable container that&#8217;s needed?  I know there&#8217;s the Non-EJB (POJO) approach, but there&#8217;s more configuration required for that.  Every book I&#8217;ve read is pushing the EJB approach.  To be specific, can I run a JUnit test from Eclipse/Intellij without using any kind of container (AppServer, Embeddable Container) using EJB3 and Seam?</p>
<p>On the Spring/Seam being dependent on their &#8216;own&#8217; technologies, I think we&#8217;re fairly in agreement.  When I look at Seam, I see, JBoss Rules, JBoss jPDL, Hibernate and all these technologies are under JBoss.  Even some people think EJB is JBoss:</p>
<p><a href="http://www.devx.com/opinion/Article/21244" rel="nofollow">http://www.devx.com/opinion/Article/21244</a></p>
<p>With Spring, you can use Struts, JSF (with or without Web Flow).  Can I swap out Seam page flow for something not under JBoss?  Didn&#8217;t Seam run on JBoss AS in it&#8217;s initial release and not support other AS&#8217;s?</p>
<p>I can use pretty much any UI framework (JSF, Struts,..) with Spring, but that&#8217;s not the case with Seam.  Gavin King has explicitly said he wants Seam to have few choices, which is fine.  But those few seem to be JBoss related.</p>
<p>I do think both companies are putting out tremendous technologies that work well together.  I just think Seam doesn&#8217;t support as many, but this could be due to the maturity levels of both.</p>
<p>On the multiple tabs and back button issue you talked about, do both technologies support them?  I haven&#8217;t run into the back button you&#8217;re experiencing with Seam, but I&#8217;d be curious if I can reproduce and test it out with Spring Web Flow&#8230;</p>
<p>thanks</p>
]]></content:encoded>
	</item>
</channel>
</rss>
