<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3339983951191798929</id><updated>2012-02-03T19:15:35.669-06:00</updated><title type='text'>Struts 2</title><subtitle type='html'>This is Struts 2 in Action</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3339983951191798929.post-524281021152137214</id><published>2008-11-07T08:28:00.006-06:00</published><updated>2008-11-07T08:55:28.109-06:00</updated><title type='text'>ApacheCon US 2008 Rocked!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1J4TLNh431U/SRRWRNqvLcI/AAAAAAAAACk/wsuIHExMSd0/s1600-h/speaker.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 125px; height: 125px;" src="http://2.bp.blogspot.com/_1J4TLNh431U/SRRWRNqvLcI/AAAAAAAAACk/wsuIHExMSd0/s320/speaker.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265928718029630914" /&gt;&lt;/a&gt;&lt;br /&gt;I am wrapping up a week in New Orleans where I met the greatest technologists on the planet!  I was there to speak about Struts 2 and this was my first time at this conference so I really did not know what to expect!  As a regular Java One attendee, I expected hugeness all around.  When I discovered only a relatively smallish bunch, I figured I'd give my talk and hit Bourbon Street.  As it turned out, this was the sweetest conference I have attended yet!  Everyone was top-notch and cool enough to talk to you.  I see too many techies with big heads who act like they have been on tour with Aerosmith.  Many of the speakers at ApacheCon were the "head Fred's" of the major Apache projects we use every day and they openly visited about the good, bad and ugly.  Bertrand Delecretaz was actually more entertaining than Steven Tyler!  After his talk on "Open Source Collaboration Tools" I had learned about so many products and trends that I was reaching for more paper to write on.  And Brett Porter was a better performer than Joe Perry!  Granted, he wasn't wearing a Les Paul, but he made Maven sing&lt;br /&gt;&lt;br /&gt;If you have never attended ApacheCon, I would suggest you add this to your New Year's resolutions.&lt;br /&gt;&lt;br /&gt;Peace,&lt;br /&gt;Scott&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339983951191798929-524281021152137214?l=strutsschool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/524281021152137214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3339983951191798929&amp;postID=524281021152137214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/524281021152137214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/524281021152137214'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/2008/11/apachecon-us-2008-rocked.html' title='ApacheCon US 2008 Rocked!'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1J4TLNh431U/SRRWRNqvLcI/AAAAAAAAACk/wsuIHExMSd0/s72-c/speaker.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3339983951191798929.post-6713618109808852115</id><published>2008-10-21T07:30:00.005-05:00</published><updated>2009-01-17T12:45:33.100-06:00</updated><title type='text'>The Web Site</title><content type='html'>I am in the process of putting lipstick on my strutsschool.com "pig website!"  In the spirit of our hugely successful Manning publication, I am launching struts2inaction.com.  If you have ever been the chef, cook and bottle washer for a web site, then you already know how much work it can be.  Please be patient as I transition and grow this new site.&lt;br /&gt;&lt;br /&gt;Peace,&lt;br /&gt;Scott&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339983951191798929-6713618109808852115?l=strutsschool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/6713618109808852115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3339983951191798929&amp;postID=6713618109808852115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/6713618109808852115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/6713618109808852115'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/2008/10/struts-2-in-action.html' title='The Web Site'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3339983951191798929.post-565984069401295284</id><published>2008-10-20T20:35:00.004-05:00</published><updated>2008-10-20T21:10:34.678-05:00</updated><title type='text'>Struts 2 Tips &amp; Techniques Newsletter</title><content type='html'>I am thinking about publishing a newsletter to bring you the latest Struts 2  features and techniques.  I have participated in the forums and mailing lists for years and this is not always the optimum way to learn the nuggets.  It would take a chunk of time to do this professionally and nobody wants to pay for anything (myself included) in this free-conomy!   While I don't expect to get rich doing this, I would like to break even as the opportunity cost is high.&lt;br /&gt;&lt;br /&gt;I'm curious to hear what you think about:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Publishing frequency (weekly, monthly)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Distribution format (PDF, email, print, etc.)&lt;/li&gt;&lt;li&gt;Subscription price you would be willing to pay (monthly, weekly)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Let me know what you think.&lt;br /&gt;&lt;br /&gt;Peace,&lt;br /&gt;Scott&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339983951191798929-565984069401295284?l=strutsschool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/565984069401295284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3339983951191798929&amp;postID=565984069401295284' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/565984069401295284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/565984069401295284'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/2008/10/struts-2-tips-techniques-newsletter.html' title='Struts 2 Tips &amp; Techniques Newsletter'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3339983951191798929.post-2676474829001397374</id><published>2008-10-09T07:38:00.006-05:00</published><updated>2008-11-07T08:56:24.046-06:00</updated><title type='text'>Spring/JSP Interplay</title><content type='html'>A friend and I were discussing tricks of the trade and he showed me a technique to make dynamic web pages easier to deal with.  The technique exposes the Spring Context in the same way as any other JSP implicit objects.  Being an MVC guy, my first response was "why would you mix the chocolate with the peanut butter?"  However, after I studied it awhile, his technique absolutely rocks!   What is they say "necessity is the mother of all invention?"&lt;br /&gt;&lt;br /&gt;So here are the goods...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339983951191798929-2676474829001397374?l=strutsschool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/2676474829001397374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3339983951191798929&amp;postID=2676474829001397374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/2676474829001397374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/2676474829001397374'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/2008/10/springjsp-interplay.html' title='Spring/JSP Interplay'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3339983951191798929.post-5527054388774592983</id><published>2008-10-03T08:19:00.004-05:00</published><updated>2008-10-09T07:51:59.203-05:00</updated><title type='text'>ApacheCon in New Orleans</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1J4TLNh431U/SO3-IxtHnxI/AAAAAAAAAB8/E77kBc8eTrI/s1600-h/Speaker+468x60.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_1J4TLNh431U/SO3-IxtHnxI/AAAAAAAAAB8/E77kBc8eTrI/s320/Speaker+468x60.jpg" alt="" id="BLOGGER_PHOTO_ID_5255135766946225938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Have you registered for the &lt;a href="http://us.apachecon.com/c/acus2008/"&gt;Apache conference&lt;/a&gt; yet?  It promises to be a great show and is always educational.  Come out and learn the latest about your favorite free and open source frameworks.  I'm certain that what you can't learn at the conference can be picked up on Bourbon Street!&lt;br /&gt;&lt;br /&gt;Peace,&lt;br /&gt;Scott&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339983951191798929-5527054388774592983?l=strutsschool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/5527054388774592983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3339983951191798929&amp;postID=5527054388774592983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/5527054388774592983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/5527054388774592983'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/2008/10/apachecon-in-new-orleans.html' title='ApacheCon in New Orleans'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1J4TLNh431U/SO3-IxtHnxI/AAAAAAAAAB8/E77kBc8eTrI/s72-c/Speaker+468x60.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3339983951191798929.post-1917273815011410550</id><published>2008-09-12T07:08:00.015-05:00</published><updated>2008-09-21T12:32:58.903-05:00</updated><title type='text'>Orthogonal OGNL</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1J4TLNh431U/SNaFGpfLfuI/AAAAAAAAABs/U9TzlmO2yRM/s1600-h/Struts2+-+Copy.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_1J4TLNh431U/SNaFGpfLfuI/AAAAAAAAABs/U9TzlmO2yRM/s320/Struts2+-+Copy.gif" alt="" id="BLOGGER_PHOTO_ID_5248528765009231586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Trying to explain OGNL to a new Struts 2 developer has its challenges. Changes in expression syntax and the whole value stack proposition can be a bit daunting. Add to this the sparse documentation and you have a recipe for confusion.&lt;br /&gt;&lt;br /&gt;I would like to clear up the confusion by offering a visual and a brief explanation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OGNL is the Object Graph Navigation Language (see http://www.ognl.org/  for the full documentation of OGNL). Here, we will cover a few examples of OGNL features that co-exist with the framework. To review basic concepts, refer to OGNL Basics.&lt;br /&gt;&lt;br /&gt;The framework uses a standard naming context to evaluate OGNL expressions. The top level object dealing with OGNL is a Map (usually referred as a context map or simply context). OGNL has a notion of there being a root object within the context. In OGNL expressions, the properties of the root object can be referenced without any special "marker" notation. References to other objects are marked with a pound sign (#).&lt;br /&gt;&lt;br /&gt;The framework sets the OGNL context to be our ThreadLocal ActionContext, and the OGNL root object to the Struts 2 value stack. The value stack is a set of several objects, but to OGNL it appears to be a single object.  Along with the value stack, the framework places other objects in the ActionContext, including Maps representing the application, session, and request contexts. These objects coexist in the ActionContext, alongside the value stack.&lt;br /&gt;&lt;br /&gt;The Action instance is always pushed onto the value stack and since the stack is the OGNL root, references to Action properties can omit the # marker.&lt;br /&gt;&lt;s:property value="“customer.address"&gt;&lt;br /&gt;&amp;lt;s:property value=“customer.address"/&amp;gt;&lt;br /&gt;&lt;blockquote&gt;&lt;s:property value="“customer.address"&gt;&lt;/s:property&gt;&lt;/blockquote&gt;But, to access other objects in the ActionContext, we must use the # notation so OGNL knows not to look in the root object, but for some other object in the ActionContext.&lt;s:property value="#session.mySessionPropKey"&gt;&lt;s:property value="#session['mySessionPropKey']"&gt;&lt;s:property value="#request['myRequestPropKey']"&gt;&lt;s:property value="#session.mySessionPropKey"&gt;&lt;s:property value="#session['mySessionPropKey']"&gt;&lt;s:property value="#request['myRequestPropKey']"&gt;&lt;code&gt;&lt;/code&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;s:property value="“customer.address"&gt;&lt;s:property value="#session.mySessionPropKey"&gt;&lt;s:property value="#session['mySessionPropKey']"&gt;&lt;s:property value="#request['myRequestPropKey']"&gt;&lt;s:property value="#session.mySessionPropKey"&gt;&lt;s:property value="#session['mySessionPropKey']"&gt;&lt;s:property value="#request['myRequestPropKey']"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;s:property value="#session.mySessionPropKey"/&amp;gt; or&lt;br /&gt;&amp;lt;s:property value="#session['mySessionPropKey']"/&amp;gt; or&lt;br /&gt;&amp;lt;s:property value="#request['myRequestPropKey']"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;The ActionContext is also exposed to Action classes via a static method.&lt;br /&gt;&lt;br /&gt;ActionContext.getContext().getSession().put("mySessionPropKey", mySessionObject);&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;/s:property&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339983951191798929-1917273815011410550?l=strutsschool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/1917273815011410550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3339983951191798929&amp;postID=1917273815011410550' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/1917273815011410550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/1917273815011410550'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/2008/09/orthogonal-ognl.html' title='Orthogonal OGNL'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1J4TLNh431U/SNaFGpfLfuI/AAAAAAAAABs/U9TzlmO2yRM/s72-c/Struts2+-+Copy.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3339983951191798929.post-7137232049732343419</id><published>2007-12-23T16:54:00.000-06:00</published><updated>2007-12-23T17:18:55.434-06:00</updated><title type='text'>Breaking your brain and wasting your back</title><content type='html'>How do you feel at the end of an IT day?  Does your body wonder if you ever got out of bed while your brain questions why you did?  Tech jobs today seem to consist of an excessive number of  time wasting meetings where we are breaking brains.  Interns coming into corporate office jobs start to  believe this is all part of the "real gig" and are slowly sucked onto the crazy train.  This often results in working after hours and weekends to actually deliver the half-baked software products everyone has been droning about in these meetings!  Corporate America seems to have shifted into &lt;span style="font-weight: bold;"&gt;group think&lt;/span&gt; mode where decisions take months to be handed down while customers slowly disappear into obscurity.&lt;br /&gt;&lt;br /&gt;Is this happening where you work?  I am starting to wonder if I might just have an overactive resistance gene to mediocrity.&lt;br /&gt;&lt;br /&gt;Scott&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339983951191798929-7137232049732343419?l=strutsschool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/7137232049732343419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3339983951191798929&amp;postID=7137232049732343419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/7137232049732343419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/7137232049732343419'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/2007/12/breaking-your-brain-and-wasting-your.html' title='Breaking your brain and wasting your back'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3339983951191798929.post-1963254019054268403</id><published>2007-11-25T12:54:00.000-06:00</published><updated>2007-12-23T17:31:56.753-06:00</updated><title type='text'>Saving objects with db4o</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.lsl.com.au/images/images-ref/definitive-guide-db4o.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 203px; height: 269px;" src="http://www.lsl.com.au/images/images-ref/definitive-guide-db4o.jpg" alt="" border="0" /&gt;&lt;/a&gt;I downloaded the db4o open source object database and started experimenting with it on a recent Struts 2 web application.  After writing JDBC and Hibernate for many years, I was in disbelief when I discovered my object graphs were being saved without any XML files or configuration!  I had my objects persisted in less code than it would take to initialize an ArrayList!&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Let me know if you have experience with this database.  I think it was created for mobile computing, but it is serving my EE application very nicely.  It has been a real breath of fresh air.&lt;br /&gt;&lt;br /&gt;P.S. I added a couple properties to an object this morning and figured this would break everything.  When I moved the new object into production, I figured I would be repairing collateral damage the rest of the day.  In fact, there were no problems and I now have the time to blog about it.&lt;br /&gt;&lt;br /&gt;Peace,&lt;br /&gt;Scott&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339983951191798929-1963254019054268403?l=strutsschool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/1963254019054268403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3339983951191798929&amp;postID=1963254019054268403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/1963254019054268403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/1963254019054268403'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/2007/11/saving-objects-with-db4o.html' title='Saving objects with db4o'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3339983951191798929.post-5544728775334800415</id><published>2007-11-17T17:17:00.003-06:00</published><updated>2009-01-17T13:24:36.302-06:00</updated><title type='text'>The book</title><content type='html'>Welcome to my blog.  Click &lt;a href="http://www.manning.com/dbrown/"&gt;here&lt;/a&gt; to have a look at my latest book.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339983951191798929-5544728775334800415?l=strutsschool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strutsschool.blogspot.com/feeds/5544728775334800415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3339983951191798929&amp;postID=5544728775334800415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/5544728775334800415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3339983951191798929/posts/default/5544728775334800415'/><link rel='alternate' type='text/html' href='http://strutsschool.blogspot.com/2007/11/struts-2-in-action.html' title='The book'/><author><name>Scott</name><uri>http://www.blogger.com/profile/09888922857627894868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_1J4TLNh431U/SYRlgC5c0II/AAAAAAAAAEU/F5QsjsXtn88/S220/head_and_brain.jpg'/></author><thr:total>0</thr:total></entry></feed>
