On Tue, Jan 24, 2012 at 17:19, Richard Kennard <span dir="ltr">&lt;<a href="mailto:richard@kennardconsulting.com">richard@kennardconsulting.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Dan,<br>
<div class="im"><br>
 &gt; Can we agree to at least try to move some of the boilerplate into an embedded framework rather than have the common logic duplicated in each view bean<br>
<br>
</div>I&#39;d actually be against this.<br>
<br>
I don&#39;t think we can have an embedded framework without it being non-trivial. It&#39;s probably going to use unusual methods like &#39;getGenericSuperClass&#39;, or<br>
declare proprietary interfaces like &#39;EntityWithId&#39;, or use non-obvious tricks like<br>
<a href="https://github.com/seam/faces/blob/develop/impl/src/main/java/org/jboss/seam/faces/conversion/ObjectConverter.java" target="_blank">https://github.com/seam/faces/blob/develop/impl/src/main/java/org/jboss/seam/faces/conversion/ObjectConverter.java</a><br>


<br>
So it&#39;ll need to be properly documented. Plus frameworks have a habit of growing. They&#39;ll need bug fixes, feature requests, examples etc.<br></blockquote><div><br></div><div>After I laid down last night, this thought (i.e, fear) came rushing into my head. Shading in framework code is no good (like a bad hangover tells you about that last shot you did the night before).</div>

<div><br></div><div>^ The beginning of Hangover 2 just came to mind :)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I don&#39;t think we should try and &#39;slip something like this past&#39; as part of Forge. I&#39;d be 100% behind creating something that is run as a top-level project:<br>
a Seam CRUD framework (like CDI Query) or something. And Forge could use that. But I think it&#39;s too big to be part of Forge itself.<br></blockquote><div><br></div><div>Ah, just wait for it. DeltaSpike Qu... ;) Coming soon to a git repository.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I agree that many developers, when they first see the Forge output, are going to immediately think &quot;oh I could improve this, I could refactor that, oh look<br>
I could push that into a base class&quot;. There&#39;s something implicit in that, which is that they&#39;ve immediately grok&#39;ed the output and are moving on to better<br>
things. That&#39;s not such a bad achievement. In my opinion it&#39;s better than a lot of code generators (like, say, Roo) where your first thought is &quot;so where<br>
is the code that actually saves my entity? How does that get called? What plumbing is this?&quot;<br><br></blockquote><div><br></div><div>Very true.</div><div><br></div><div>As I said in my other e-mail, we can sort of agree to disagree in part. The pure Java EE approach will likely invoke the reaction of &quot;I could improve that&quot;, and they would be correct. But the output is not doing anything cryptic, so it fills a void of showing them what Java EE has, for better or for worse.</div>

<div><br></div><div>I&#39;m guessing you would agree that using a few frameworks would dramatically improve the elegance of the output, for example Query and MetaWidget. Therefore it&#39;s worth the community (at least) exploring a second scaffold that does make use of a palatable set of extension libraries.</div>

<div><br></div><div>-Dan</div><div><br></div></div>-- <br><div>Dan Allen</div>Principal Software Engineer, Red Hat | Author of Seam in Action<br>Registered Linux User #231597<br><br><div><a href="http://google.com/profiles/dan.j.allen" target="_blank">http://google.com/profiles/dan.j.allen</a><br>

<a href="http://mojavelinux.com" target="_blank">http://mojavelinux.com</a><br><a href="http://mojavelinux.com/seaminaction" target="_blank">http://mojavelinux.com/seaminaction</a><br></div><br>