jdcasey     2005/04/07 22:54:52

  Modified:    maven-site/src/site/xdoc
                        developing-plugins-with-marmalade.xml index.xml
                        navigation.xml
  Log:
  proofed the development document for marmalade-mojos, and linked it into 
navigation.xml and index.xml.
  
  Revision  Changes    Path
  1.2       +41 -23    
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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- developing-plugins-with-marmalade.xml     8 Apr 2005 05:34:41 -0000       
1.1
  +++ developing-plugins-with-marmalade.xml     8 Apr 2005 05:54:52 -0000       
1.2
  @@ -61,19 +61,18 @@
             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 translating Jelly into Java as well.
  +          worrying about changing implementation languages.
           </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 try to provide as much Jelly 
functionality to Maven 2.0 
  +          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 basically embed Jelly within Marmalade for the taglibs that 
have not yet been ported to 
  -          native Marmalade.
  +          to embed Jelly within Marmalade for the taglibs that have not yet 
been ported to native Marmalade.
           </p>
   
  -        <p>For more information on Marmalade, <a 
href="http://marmalade.codehaus.org";>Watch this space.</a>
  +        <p>For more information on Marmalade, see the <a 
href="http://marmalade.codehaus.org";>Marmalade website.</a>
         </subsection>
         
         <subsection name="Marmalade Plugin Basics">
  @@ -93,8 +92,8 @@
                 [Required] A <code>pom.xml</code> for building the plugin, 
which contains a script source directory
                 resembling 
<code><![CDATA[<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>]]>
               </li>
  -            <li>[Optional] Plugin resources for adding to the classpath when 
the plugin is run</li>
  -            <li>[Optional] Other Java sources, which are accessed from that 
plugin's scripts</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>
             </ul>
           </p>
   
  @@ -102,9 +101,9 @@
             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</li>
  -            <li>Wire the plugin up to common infrastructural components</li>
  -            <li>Bind the plugin to a particular point in the build process 
lifecycle</li>
  +            <li>Inject project and environmental information into the plugin 
(parameters)</li>
  +            <li>Make common infrastructural components available for use in 
the plugin</li>
  +            <li>Bind the plugin to a particular point in the build process 
lifecycle, if appropriate</li>
               <li>Provide a goal name to reference the plugin from inside the 
Maven 2.0 system</li>
               <li>Provide descriptive information about what the plugin script 
does</li>
             </ul>
  @@ -114,8 +113,8 @@
             The general structure of a Marmalade plugin script is:
           </p>
           <source><![CDATA[
  -<!-- The term mojo is a play on POJO, meant to mean Maven POJO. 
  - | Mojos correspond to goals in Maven 2.0. 
  +<!-- The term mojo is a play on POJO, meant to mean "Maven POJO". 
  + |   Mojos correspond to goals in Maven 2.0. 
    -->
   <mojo xmlns="marmalade:mojo">
     <metadata>
  @@ -152,12 +151,21 @@
             In a new directory, create a <code>pom.xml</code> file like so:
           </p>
           <source><![CDATA[<project> 
  -  <modelVersion>4.0.0</modelVersion> 
  -  <groupId>org.apache.maven.plugins</groupId> <!-- for now, this is the only 
groupId acceptable for maven plugins -->
  +  <modelVersion>4.0.0</modelVersion>
  +  
  +  <!-- for now, this is the only groupId acceptable for maven plugins -->
  +  <groupId>org.apache.maven.plugins</groupId>
  +  
  +  <!-- uses a standard naming convention -->
     <artifactId>maven-hello-plugin</artifactId> 
  -  <version>1.0-SNAPSHOT</version> <!-- using this version, we make the 
plugin fit the anonymous usage requirements. -->
     
  -  <packaging>maven-plugin</packaging> <!-- Designate this project as 
building a maven plugin -->
  +  <!-- uses this version, to make it usable without configuring this plugin 
from
  +   |   the project POM.
  +   -->
  +  <version>1.0-SNAPSHOT</version>
  +  
  +  <!-- Designate this project as building a maven plugin -->
  +  <packaging>maven-plugin</packaging>
   
     <name>Maven Hello World Plugin</name> 
   
  @@ -167,8 +175,18 @@
     -->
    
     <build> 
  -    <!-- This is only required if you have Java code -->
       <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory> 
  +    
  +    <!-- Since the script source directory is only a marker for a resource, 
you
  +     |   still have to declare that directory for resource inclusion when you
  +     |   build.
  +     -->
  +    <resources>
  +      <resource>
  +        <directory>src/main/scripts</directory>
  +        <includes><include>**/*.mmld</include></includes>
  +      </resource>
  +    </resources>
     </build> 
   </project>]]></source>
   
  @@ -177,7 +195,7 @@
             goal within the build system, so you may need several scripts.
           </p>
           <p>
  -          Since this is in fact a Hello World plugin, our script will simply 
output <code>Hello, World</code>
  +          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[
  @@ -246,29 +264,29 @@
             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[<io:file/>]]></code> tag, we'll
  +          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>
           ]]></source>
           <p>
  -          Now, install the new plugin and run it:
  +          Install the new plugin and run it, to verify your changes:
           </p>
           <source>m2 install
   m2 hello:hello</source>
           <p>
  -          Notice that the file still has the same old salutation (which is 
the default value of the our parameter). 
  +          Notice that the output still has the same old salutation (which is 
the default value of the parameter). 
             Now, to customize it:
           </p>
           <source>m2 -Dsalutation=Hiya hello:hello</source>
           <p>
  -          The contents of <code>hello.txt</code> should now read:
  +          The output should now read:
           </p>
           <source>Hiya, World</source>
   
           <p>
  -          Now, users of this plugin can customize the salutation for their 
build without having to specify it on
  +          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>
             similar to:
           </p>
  
  
  
  1.6       +5 -0      maven-components/maven-site/src/site/xdoc/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-site/src/site/xdoc/index.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- index.xml 7 Apr 2005 17:28:09 -0000       1.5
  +++ index.xml 8 Apr 2005 05:54:52 -0000       1.6
  @@ -121,6 +121,11 @@
               <a href="configuration.html">Configuring Maven</a>
             </i>
           </li>
  +        <li>
  +          <i>
  +            <a href="developing-plugins-with-marmalade.html">Developing 
Plugins with Marmalade</a>
  +          </i>
  +        </li>
         </ul>
       </section>
     </body>
  
  
  
  1.4       +1 -0      maven-components/maven-site/src/site/xdoc/navigation.xml
  
  Index: navigation.xml
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-site/src/site/xdoc/navigation.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- navigation.xml    7 Apr 2005 13:58:46 -0000       1.3
  +++ navigation.xml    8 Apr 2005 05:54:52 -0000       1.4
  @@ -16,6 +16,7 @@
       <menu name="User's Guide">
         <item name="Getting Started" href="getting-started.html"/>
         <item name="Configuration" href="configuration.html"/>
  +      <item name="Developing Plugins with Marmalade" 
href="developing-plugins-with-marmalade.html"/>
       </menu>
     </body>
   </project>
  \ No newline at end of file
  
  
  

Reply via email to