<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=windows-1252"
 http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
One significant difference is that an archetype gives you a starter
application, but really knows nothing about your application.  A mojo
can be run at different points of the maven lifecycle, but doesn't know
much about the app it's being run on.  It's up to the mojo writer to
turn the collection of classes and resources into meaningful pieces of
an application.  <br>
<br>
I can't speak for rails, but I know Grails actually is aware of your
data and has a much richer model.  Grails can apply a template per each
entity or database table in your application.  Maven, as of 2.2
(haven't looked at 3.0 yet), has no idea what your domain is.  <br>
<br>
For example, if you wanted to create a plugin that generated a CRUD app
per each entity in your application, your Maven2 mojo would have to
start from scratch and determine what your entities are.  It is my
understanding that Grails plugins have convenient hooks to that data,
controllers, service, etc (although someone who has actually written a
Grails plugin before would be a better source of details on the
subject).  <br>
<br>
<br>
<br>
On 02/05/2010 06:06 PM, Arbi Sookazian wrote:
<blockquote
 cite="mid:c61a56f51002051506p1b44bf4dme88105cadf94affb@mail.gmail.com"
 type="cite">That's interesting.<br>
  <h2 style="margin-left: 40px;">The Basics of Creating Rails Plugins</h2>
  <p style="margin-left: 40px;">A Rails plugin is either an extension
or a modification of the core framework. Plugins provide:</p>
  <ul style="margin-left: 40px;">
    <li>a way for developers to share bleeding-edge ideas without
hurting the stable code base</li>
    <li>a segmented architecture so that units of code can be fixed or
updated on their own release schedule</li>
    <li>an outlet for the core developers so that they don’t have to
include every cool new feature under the sun</li>
  </ul>
  <a moz-do-not-send="true"
 href="http://guides.rubyonrails.org/plugins.html">http://guides.rubyonrails.org/plugins.html</a><br>
  <br>
Sounds like CDI PEs (portable extensions) was a ripoff of this idea... 
And wasn't seam-gen alarmingly similar to Grails in terms of quick
project setup/startup?  <br>
  <br>
PE is strikingly similar to Rails plugins based on the above
description when you think of Seam 3 having Weld as its new core and
the "extras" like jBPM integration, remoting, iText, PDF, Excel, etc.<br>
  <br>
Maven 2 already has the concept of MOJO (Maven POJO) and plugins:<br>
  <br>
  <a moz-do-not-send="true"
 href="http://maven.apache.org/guides/plugin/guide-java-plugin-development.html">http://maven.apache.org/guides/plugin/guide-java-plugin-development.html</a><br>
  <br>
Not sure what added-value you're suggesting??<br>
  <br>
  <br>
  <div class="gmail_quote">On Fri, Feb 5, 2010 at 2:34 PM, Piotr
Steininger <span dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:piotr.steininger@gmail.com">piotr.steininger@gmail.com</a>&gt;</span>
wrote:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    <div>I totally agree. Weld archetypes are probably the best
polished ones I have ever seen. They remind me of some of the Rails
semantics (get up and running in minutes). </div>
    <div><br>
    </div>
    <div>These similarities got me thinking about another aspect of
Rails - Plugins or gems (which I think is a mixed bag). The promise of
plugins/gems is that you can quickly add dependent code and do some
setup in minutes as well. I think that maven could very well be a
platform to do the same. Currently one has to add dependencies by hand
and quite often tweak the exclusions. With the introduction of maven
console plugin, I think the door became open to create maven
plugins/console scripts to make this a more automated process.</div>
    <div><br>
    </div>
    <div>I don't have the expertise to create a prototype. I also don't
know if this is really something that could be useful in the community
(or simply serve as a tool for Maven newbies).</div>
    <div><br>
    </div>
    <div>In any case, I wanted to see what the community thinks about
this.</div>
    <div><br>
    </div>
    <div> <br>
 <br>
    <div class="gmail_quote">
    <div class="im">On Fri, Feb 5, 2010 at 5:06 PM, Dan Allen <span
 dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:dan.j.allen@gmail.com" target="_blank">dan.j.allen@gmail.com</a>&gt;</span>
wrote:<br>
    </div>
    <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
      <div>
      <div class="h5">The Weld archetype initiative has had a further
reaching impact than just the community of developers interested in
using CDI (via Weld). A recent blog entry on Sonatype cites the Weld
archetypes as "the perfect case study of how using Archetypes benefits
the community." Steven is acknowledged for his effort to identify the
need of archetypes and ultimately get them promoted to Maven central
for all to use.<br>
      <br>
      <a moz-do-not-send="true"
 href="http://www.sonatype.com/people/2010/01/maven-archetypes-and-nexus-there-is-no-faster-way/"
 target="_blank">http://www.sonatype.com/people/2010/01/maven-archetypes-and-nexus-there-is-no-faster-way/</a><br>
      <br>
Although archetypes are rather technically simple, it's important to
recognize the impact they can have by starting people off on the right
foot.<br>
      <br clear="all">
-Dan<br>
      <font color="#888888"><br>
-- <br>
Dan Allen<br>
Senior Software Engineer, Red Hat | Author of Seam in Action<br>
Registered Linux User #231597<br>
      <br>
      <a moz-do-not-send="true" href="http://mojavelinux.com"
 target="_blank">http://mojavelinux.com</a><br>
      <a moz-do-not-send="true"
 href="http://mojavelinux.com/seaminaction" target="_blank">http://mojavelinux.com/seaminaction</a><br>
      <a moz-do-not-send="true"
 href="http://www.google.com/profiles/dan.j.allen" target="_blank">http://www.google.com/profiles/dan.j.allen</a><br>
      </font><br>
      </div>
      </div>
      <div class="im">_______________________________________________<br>
weld-dev mailing list<br>
      <a moz-do-not-send="true" href="mailto:weld-dev@lists.jboss.org"
 target="_blank">weld-dev@lists.jboss.org</a><br>
      <a moz-do-not-send="true"
 href="https://lists.jboss.org/mailman/listinfo/weld-dev"
 target="_blank">https://lists.jboss.org/mailman/listinfo/weld-dev</a><br>
      </div>
    </blockquote>
    </div>
    <br>
    </div>
    <br>
_______________________________________________<br>
weld-dev mailing list<br>
    <a moz-do-not-send="true" href="mailto:weld-dev@lists.jboss.org">weld-dev@lists.jboss.org</a><br>
    <a moz-do-not-send="true"
 href="https://lists.jboss.org/mailman/listinfo/weld-dev"
 target="_blank">https://lists.jboss.org/mailman/listinfo/weld-dev</a><br>
  </blockquote>
  </div>
  <br>
</blockquote>
<br>
</body>
</html>