brett       2005/04/07 23:10:09

  Modified:    maven-site/src/site/xdoc
                        developing-plugins-with-marmalade.xml
  Log:
  review the marmalade document
  
  Revision  Changes    Path
  1.3       +55 -49    
maven-components/maven-site/src/site/xdoc/developing-plugins-with-marmalade.xml
  
  Index: developing-plugins-with-marmalade.xml
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-site/src/site/xdoc/developing-plugins-with-marmalade.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- developing-plugins-with-marmalade.xml     8 Apr 2005 05:54:52 -0000       
1.2
  +++ developing-plugins-with-marmalade.xml     8 Apr 2005 06:10:09 -0000       
1.3
  @@ -27,70 +27,75 @@
     <body>
       <section name="Developing Plugins with Marmalade">
         <p>
  -         NOTE: Compare this tutorial to <a 
href="http://maven.apache.org/using/developing-plugins.html";>Developing 
  +         NOTE: Compare this tutorial to
  +        <a 
href="http://maven.apache.org/using/developing-plugins.html";>Developing
            Plugins</a> from the Maven 1.0 website. Marmalade is meant to be 
quite similar to Jelly in its 
            syntax, so this process should be very familiar to Maven 1.0 plugin 
developers.
         </p>
  +      <p>
  +        If you need some background on how plugins fit into the execution 
model of Maven 2.0, try reading the
  +        <a href="architecture.html">Maven 2.0 Architecture</a>.
  +      </p>
   
  -      <subsection name="Background">
  +      <subsection name="Graduating from Jelly: Plugins in Marmalade">
           <p>
  -          Each of the various steps in a given Maven 2.0 build corresponds 
to one plugin executing.
  -          Plugins have access to the common infrastructure of the core API, 
along with the basic information
  -          about the current project being built. Using these facilities, 
each plugin executes one simple, 
  -          repeatable step in the build. It is from these simple building 
blocks that even the most 
  -          complex, powerful build processes are constructed.
  +          Beginning in Maven 2.0, plugins can be implemented in various 
languages. While our initial
  +          technology preview will only offer support for these Marmalade and 
Java, we will eventually add
  +          support for additional languages, possibly including 
Beanshell/Janino, Javascript, and more.
           </p>
   
           <p>
  -          Beginning in Maven 2.0, plugins can be implemented in various 
languages, ranging from pure Java
  -          to Marmalade - a next-generation Jelly-like XML language - and 
beyond. While our initial
  -          technology preview will only offer support for these two 
languages, we will eventually add
  -          support for additional languages, possibly including 
Beanshell/Janino, Javascript, and more.
  +          Marmalade is a next-generation Jelly-like XML language, and was 
chosen for early inclusion in Maven 2.0 to
  +          ease migration from Maven 1.0, and to provide a way to incorporate 
Ant scripts into a build project.
           </p>
   
           <p>
  -          For more information on how plugins fit into the execution model 
of Maven 2.0, try reading
  -          <a href="architecture.html">Maven 2.0 Architecture</a>.
  +          Marmalade currently has basic syntax compatibility with Jelly, and 
some measure of Jelly taglib
  +          compatibility... and this support will continue to improve as 
Marmalade matures. As such, Marmalade can allow
  +          the plugin developer the freedom to concentrate on porting between 
project models and core facilities, rather
  +          than worrying about changing implementation languages.
           </p>
  -      </subsection>
   
  -      <subsection name="Graduating from Jelly: Plugins in Marmalade">
           <p>
  -          For those Maven 1.x users who have implemented their own plugins 
using Jelly, Marmalade can be 
  -          an extremely powerful language for porting to Maven 2.0. Marmalade 
currently has basic syntax
  -          compatibility with Jelly, and some measure of Jelly taglib 
compatibility...and this support
  -          will continue to improve as Maven 2.0 matures. As such, Marmalade 
can allow the plugin developer
  -          the freedom to concentrate on porting between project models and 
core facilities, rather than
  -          worrying about changing implementation languages.
  +          Marmalade is still only a fledgling project, and while it's core 
engine is sophisticated and mature, it's
  +          support for Jelly and other taglibs is still growing at a brisk 
pace. In order to provide as much Jelly
  +          functionality out-of-the-box to Maven 2.0 users, Marmalade has an 
available compatibility layer for Jelly,
  +          which will allow the user to embed Jelly within Marmalade for the 
taglibs that have not yet been ported to
  +          native Marmalade.
           </p>
   
           <p>
  -          Like Maven 2.0 itself, Marmalade is somewhat of a fledgling 
project. That is, while it's core
  -          engine is fairly sophisticated and mature, it's support for Jelly 
and other taglibs is still 
  -          growing at a brisk pace. In order to provide as much Jelly 
functionality out-of-the-box to Maven 2.0 
  -          users, Marmalade has an available compatibility layer for Jelly, 
which will allow the user
  -          to embed Jelly within Marmalade for the taglibs that have not yet 
been ported to native Marmalade.
  +          For those Maven 1.x users who have implemented their own plugins 
using Jelly, Marmalade can be 
  +          an extremely powerful language for porting to Maven 2.0.
           </p>
   
  -        <p>For more information on Marmalade, see the <a 
href="http://marmalade.codehaus.org";>Marmalade website.</a>
  +        <p>For more information on Marmalade, see the
  +          <a href="http://marmalade.codehaus.org";>Marmalade website.</a>
  +        </p>
         </subsection>
  -      
  +
         <subsection name="Marmalade Plugin Basics">
           <p>
             A plugin implemented in Marmalade can contain the following:
             <ul>
  -            <li>[Required] One or more Marmalade scripts, each in a file 
with the extension <code>.mmld</code></li>
  +            <li>[Required] One or more Marmalade scripts, each in a file 
with the extension
  +              <code>.mmld</code>
  +            </li>
               <li>
                 [Optional] One or more Marmalade tag libraries, each 
consisting of:
                 <ul>
  -                <li>One or more implementations of MarmaladeTag
  -                <li>An implementation of <code>MarmaladeTagLibrary</code>, 
the constructor of which registers
  +                <li>One or more implementations of MarmaladeTag</li>
  +                <li>An implementation of
  +                  <code>MarmaladeTagLibrary</code>, the constructor of which 
registers
                       each MarmaladeTag implementation to a tag name (for use 
in scripts)
  +                </li>
                 </ul>
               </li>
               <li>
  -              [Required] A <code>pom.xml</code> for building the plugin, 
which contains a script source directory
  -              resembling 
<code><![CDATA[<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>]]>
  +              [Required] A
  +              <code>pom.xml</code> for building the plugin, which contains a 
script source directory
  +              resembling
  +              
<code><![CDATA[<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>]]></code>
               </li>
               <li>[Optional] Plugin resources to be used from within the 
plugin's scripts (available on the classpath)</li>
               <li>[Optional] Other Java sources, which can be accessed from 
the plugin's scripts</li>
  @@ -98,7 +103,8 @@
           </p>
   
           <p>
  -          Each <code>.mmld</code> script file must provide the same basic 
structural elements, which define it
  +          Each
  +          <code>.mmld</code> script file must provide the same basic 
structural elements, which define it
             as a Maven 2.0 plugin, and provide essential metadata. This 
metadata is used to:
             <ul>
               <li>Inject project and environmental information into the plugin 
(parameters)</li>
  @@ -148,7 +154,8 @@
             source directory in which to find script sources.
           </p>
           <p>
  -          In a new directory, create a <code>pom.xml</code> file like so:
  +          In a new directory, create a
  +          <code>pom.xml</code> file like so:
           </p>
           <source><![CDATA[<project> 
     <modelVersion>4.0.0</modelVersion>
  @@ -195,8 +202,10 @@
             goal within the build system, so you may need several scripts.
           </p>
           <p>
  -          Since this is in fact a Hello World plugin, your script will 
simply output <code>Hello, World</code>
  -          to the screen. Create a script in 
<code>src/main/scripts/hello.mmld</code> with the following contents:
  +          Since this is in fact a Hello World plugin, your script will 
simply output
  +          <code>Hello, World</code>
  +          to the screen. Create a script in
  +          <code>src/main/scripts/hello.mmld</code> with the following 
contents:
           </p>
           <source><![CDATA[
   <mojo xmlns="marmalade:mojo">
  @@ -260,12 +269,15 @@
   </mojo>
           ]]></source>
           <p>
  -          Note the additional element in this parameter declaration: 
<code>default</code> specified a default
  +          Note the additional element in this parameter declaration:
  +          <code>default</code> specified a default
             salutation in case the user doesn't need or want to customize the 
plugin.
           </p>
           <p>
  -          Now, to make use of the new parameter. Inside the 
<code><![CDATA[<c:out/>]]></code> action, simply
  -          write out the customizable salutation instead of the stock phrase 
<code>Hello</code>:
  +          Now, to make use of the new parameter. Inside the
  +          <code><![CDATA[<c:out/>]]></code> action, simply
  +          write out the customizable salutation instead of the stock phrase
  +          <code>Hello</code>:
           </p>
           <source><![CDATA[
   <c:out xmlns:c="marmalade:core">${salutation}, World.</c:out>
  @@ -287,7 +299,8 @@
   
           <p>
             Users of this plugin can also customize the salutation for their 
project and avoid having to specify it on
  -          the command line each time. All they have to do is create a plugin 
entry in their <code>pom.xml</code>
  +          the command line each time. All they have to do is create a plugin 
entry in their
  +          <code>pom.xml</code>
             similar to:
           </p>
           <source><![CDATA[
  @@ -314,13 +327,6 @@
           ]]></source>
         </subsection>
       </section>
  -
  -    <section name="Getting More Information">
  -      <p>
  -        More information about using Marmalade to write Maven 2.0 plugins 
will be forthcoming, as we
  -        flesh out both Marmalade and the Maven 2.0 platform.
  -      </p>
  -    </section>
  - </body>
  +  </body>
   </document>
   
  
  
  

Reply via email to