Hi everyone,<div><br></div><div>its not just a matter of using different ScaffoldProviders in generateFromEntity plugin? </div><div><br></div><div>if you want vanilla javaEE code generation use FacesScaffold, if you want CDI Quey use CDIQueryBasedScafold and so on...</div>

<div><br></div><div>or its not that simple?  </div><div><br></div><div><br><br><div class="gmail_quote">2012/1/24 Jason Porter <span dir="ltr">&lt;<a href="mailto:lightguard.jp@gmail.com">lightguard.jp@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">*Some* will do that. Those people that are decent programmers will. Many people, or just programmers at outsourced companies will just follow along and do whatever they&#39;re presented with (I have horror stories, as I&#39;m sure many of us do). I think what Richard has done is great and it works decently. I&#39;m simply not 100% convinced that having this EE purist view is the best for us in the long run. After all, if we&#39;re going all purist, then we shouldn&#39;t need anything like Seam, or all the Hibernate extensions, or PrettyFaces, RichFaces, etc. I&#39;m just wondering if this CRUD stuff, which we all know vanilla EE doesn&#39;t do very well, would be best to off load to something else. Same thing with Security, if the scaffolding will do anything with security.<div class="HOEnZb">

<div class="h5"><br>

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



Dan,<br>
<div><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>
<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>
<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>
Regards,<br>
<br>
Richard.<br>
<br>
On 25/01/2012 1:34 AM, Dan Allen wrote:<br>
&gt; On Tue, Jan 24, 2012 at 02:15, Lincoln Baxter, III &lt;<a href="mailto:lincolnbaxter@gmail.com" target="_blank">lincolnbaxter@gmail.com</a> &lt;mailto:<a href="mailto:lincolnbaxter@gmail.com" target="_blank">lincolnbaxter@gmail.com</a>&gt;&gt; wrote:<br>




&gt;<br>
&gt;     On Tue, Jan 24, 2012 at 1:59 AM, Dan Allen &lt;<a href="mailto:dan.j.allen@gmail.com" target="_blank">dan.j.allen@gmail.com</a> &lt;mailto:<a href="mailto:dan.j.allen@gmail.com" target="_blank">dan.j.allen@gmail.com</a>&gt;&gt; wrote:<br>


<div><div>&gt;<br>
&gt;         On Tue, Jan 24, 2012 at 01:27, Jason Porter &lt;<a href="mailto:lightguard.jp@gmail.com" target="_blank">lightguard.jp@gmail.com</a> &lt;mailto:<a href="mailto:lightguard.jp@gmail.com" target="_blank">lightguard.jp@gmail.com</a>&gt;&gt; wrote:<br>




&gt;<br>
&gt;<br>
&gt;             As for the non dep idea, I can certainly understand where Lincoln and Pete are coming from.<br>
&gt;<br>
&gt;<br>
&gt;         I don&#39;t.<br>
&gt;<br>
&gt;<br>
&gt;     This is a support-driven requirement. There was a good deal of concern as to what kind of libraries we wanted to &quot;commit&quot; to for a 5-7 year support<br>
&gt;     plan. This is why Seam and the other libraries were removed.<br>
&gt;<br>
&gt;<br>
&gt; Again, I can stand see the point being made standing in those shoes.<br>
&gt;<br>
&gt; You do have to admit that it looks a bit bipolar that we are working hard to grow a CDI ecosystem with one face, then telling developers they don&#39;t need<br>
&gt; it (and we don&#39;t want to support it) with another face.<br>
&gt;<br>
&gt; When did we become so fearful of supporting open source software, whether it&#39;s invented &quot;here&quot; or not. I&#39;m not saying your wrong, I&#39;m just encouraging<br>
&gt; you to take another look.<br>
&gt;<br>
&gt;<br>
&gt;             I do wonder though if that would preclude us from creating a CDI extension for rolling our own simple CRUD framework<br>
&gt;<br>
&gt;<br>
&gt;         The one reasonable path I see here is working out the framework and then having Forge just spit it out into the project. (I know that will turn<br>
&gt;         Richard&#39;s stomach). But then, it&#39;s easy to nuke that package and add the dep...likely update the imports to use the right package too. In fact,<br>
&gt;         *that* could be a Forge plugin. It would be called<br>
&gt;<br>
&gt;<br>
&gt;     There are always multiple paths, just like we can always have multiple scaffold providers.<br>
&gt;<br>
&gt;<br>
&gt; Agreed. We want to avoid the paradox of choice, but 2 - 3 strong options is fair.<br>
&gt;<br>
&gt;     Open to extension - We can&#39;t, and I would argue that we shouldn&#39;t, drop the pure EE scaffold, but we can certainly add more, and enhance the way in<br>
&gt;     which plugins can inter-operate with the generated scaffold.<br>
&gt;<br>
&gt;<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>
&gt; Does that fit within the requirements. After all, we want to make sure the code is as maintainable as possible given these constraints.<br>
&gt;<br>
&gt;     That&#39;s the area where I think we should be focusing, instead of thinking &quot;straight up replacement.&quot; What we have is a good foundation. Let&#39;s build<br>
&gt;     onto it, not bulldoze and rebuild it :)<br>
&gt;<br>
&gt;<br>
&gt; I&#39;m not suggesting bulldoze. Simply refactor a small portion.<br>
&gt;<br>
&gt;<br>
&gt;         forge&gt; leave-javaee-purist-mode<br>
&gt;<br>
&gt;<br>
&gt;     Also remember that what Richard has done with purist java EE is very impressive!<br>
&gt;<br>
&gt;<br>
&gt; +100<br>
&gt;<br>
&gt; Perhaps I should have started with &quot;I was noticeably impressed during my demo last week at the JBUG when I first saw the sophistication of the UI forms<br>
&gt; and use of conversations.&quot; It&#39;s looking great.<br>
&gt;<br>
&gt;     The main thing that&#39;s missing is security, and that&#39;s something that&#39;s just not there in EE. (And wasn&#39;t a requirement for the scaffold.)<br>
&gt;<br>
&gt;<br>
&gt; &lt;sarcasm&gt; Yeah, because security one of those nice to have extras. &lt;/sarcasm&gt;<br>
&gt;<br>
&gt; Sarcasm aside, I understand that this is just a general problem. Being reminded of that, Jason and I recognized we should raise this as an early task in<br>
&gt; DeltaSpike, perhaps integrating with another Apache library to start, Shiro. Anyway, OT.<br>
&gt;<br>
&gt; -Dan<br>
&gt;<br>
&gt; --<br>
&gt; Dan Allen<br>
&gt; Principal Software Engineer, Red Hat | Author of Seam in Action<br>
&gt; Registered Linux User #231597<br>
&gt;<br>
&gt; <a href="http://google.com/profiles/dan.j.allen" target="_blank">http://google.com/profiles/dan.j.allen</a><br>
&gt; <a href="http://mojavelinux.com" target="_blank">http://mojavelinux.com</a><br>
&gt; <a href="http://mojavelinux.com/seaminaction" target="_blank">http://mojavelinux.com/seaminaction</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
</div></div><div><div>&gt; _______________________________________________<br>
&gt; forge-dev mailing list<br>
&gt; <a href="mailto:forge-dev@lists.jboss.org" target="_blank">forge-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>
<br>
_______________________________________________<br>
forge-dev mailing list<br>
<a href="mailto:forge-dev@lists.jboss.org" target="_blank">forge-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br>Jason Porter<br><a href="http://lightguard-jp.blogspot.com" target="_blank">http://lightguard-jp.blogspot.com</a><br>

<a href="http://twitter.com/lightguardjp" target="_blank">http://twitter.com/lightguardjp</a><br>

<br>Software Engineer<br>Open Source Advocate<br>Author of Seam Catch - Next Generation Java Exception Handling<br><br>PGP key id: 926CCFF5<br>PGP key available at: <a href="http://keyserver.net" target="_blank">keyserver.net</a>, <a href="http://pgp.mit.edu" target="_blank">pgp.mit.edu</a><br>




</font></span><br>_______________________________________________<br>
forge-dev mailing list<br>
<a href="mailto:forge-dev@lists.jboss.org">forge-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><a href="http://www.advancedit.com.br/" target="_blank"><span style="color:black;text-decoration:none"></span></a><span></span><span><span style="color:rgb(192,192,192)">Att, </span><br style="color:rgb(192,192,192)">

<br style="color:rgb(192,192,192)"><span style="color:rgb(192,192,192)">Rafael M. Pestano</span><br style="color:rgb(192,192,192)"><br style="color:rgb(192,192,192)"><span style="color:rgb(192,192,192)">Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul</span><br style="color:rgb(192,192,192)">

<span style="color:rgb(192,192,192)">Graduando em Ciência da Computação UFRGS</span></span><div><span><span style="color:rgb(192,192,192)">@realpestano</span></span></div><div><a rel="nofollow" href="http://code.google.com/p/jsf-conventions-framework/" style="color:rgb(35,71,134);outline-width:0px;outline-style:initial;outline-color:initial;font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)" target="_blank"><font color="#b9b9b9">http://code.google.com/p/jsf-conventions-framework/</font></a></div>

<br>
</div>