You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Benoit Callebaut <be...@euphonynet.be> on 2005/12/15 12:17:45 UTC

[PATCH][Jelly] new features : properties & VFS integration

Hello,
This patch add 2 features :
 * Properties : Properties are something like variables but  are
intended to be used internally to modify the behavior of some tags.
Functionality of properties can be managed by variables but properties
avoid the problem of defining variables recognized internally by tags.

I use the properties to add custom extra pre and post processing for
tags. If a special property called "pre-content" is defined as a object
implementing the new "TagProcessor" interface, the classes "TagScript"
and "TextScript" will call the methods of the object before and after
processing the tag/text.
This is very handy to implements a Jelly debugger of a formatter on the
Jelly output.

I added a new tag to set them. It is called "attribute"

* support for VFS for the FileTag. I integrated the VFS library in the
"FileTag". This means that it is possible to use VFS supported file
systems as output targets. Per default, it will behave as the old
"FileTag" if no VFS file systems are configured.

This patch doesn't break any existing test. I wrote a test case for the
first modification.

I need those modifications for my library.
This library generates formatted source code and does rely on a file
system neutral approach.
Moreover, I don't want to modify existing jelly scripts and I don't want
to pipe the output of one jelly script to the input of another jelly
script for something like formatting

I will be able to give more test-case and feedback of the usefulness of
those modifications when my output library is developed.

Benoit

Re: [PATCH][Jelly] new features : properties & VFS integration

Posted by Paul Libbrecht <pa...@activemath.org>.
Dear Benoit,

I second James comments posted earlier.
I'd also like to request the following:
- the VFS embedding sounds relatively smooth to me, I'd easily consider 
including it into Jelly... it's a hard one though since it's about 
jelly-core.
- the properties enrichment is quite a radical change... and it's also 
about the core... so please bare with us to give us time to ponder that....

For both I would suggest the following:
- you split the patches and make sure they are minimal
- both features need to be thoroughly unit-tested... (with several 
protocols for VFS?)
- you post each of the patches as separate jira issues.
(and maybe you need to sign CLA, not sure).

paul

Benoit Callebaut wrote:
> Hello,
> This patch add 2 features :
>  * Properties : Properties are something like variables but  are
> intended to be used internally to modify the behavior of some tags.
> Functionality of properties can be managed by variables but properties
> avoid the problem of defining variables recognized internally by tags.
>
> I use the properties to add custom extra pre and post processing for
> tags. If a special property called "pre-content" is defined as a object
> implementing the new "TagProcessor" interface, the classes "TagScript"
> and "TextScript" will call the methods of the object before and after
> processing the tag/text.
> This is very handy to implements a Jelly debugger of a formatter on the
> Jelly output.
>
> I added a new tag to set them. It is called "attribute"
>
> * support for VFS for the FileTag. I integrated the VFS library in the
> "FileTag". This means that it is possible to use VFS supported file
> systems as output targets. Per default, it will behave as the old
> "FileTag" if no VFS file systems are configured.
>
> This patch doesn't break any existing test. I wrote a test case for the
> first modification.
>
> I need those modifications for my library.
> This library generates formatted source code and does rely on a file
> system neutral approach.
> Moreover, I don't want to modify existing jelly scripts and I don't want
> to pipe the output of one jelly script to the input of another jelly
> script for something like formatting
>
> I will be able to give more test-case and feedback of the usefulness of
> those modifications when my output library is developed.
>
> Benoit
>   
> ------------------------------------------------------------------------
>
> Index: src/test/org/apache/commons/jelly/TestCoreTags.java
> ===================================================================
> --- src/test/org/apache/commons/jelly/TestCoreTags.java	(revision 356995)
> +++ src/test/org/apache/commons/jelly/TestCoreTags.java	(working copy)
> @@ -32,7 +32,7 @@
>  /** Tests the core tags
>    *
>    * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
> -  * @version $Revision$
> +  * @version $Revision: 219726 $
>    */
>  public class TestCoreTags extends TestCase {
>  
> @@ -125,4 +125,28 @@
>                  "<blip xmlns:blop=\"blop\" blop:x=\"blip\"></blip>",
>                  text);
>      }
> +    
> +    public void testProcessor() throws Exception{
> +        InputStream in = new FileInputStream("src/test/org/apache/commons/jelly/test_processor.jelly");
> +        XMLParser parser = new XMLParser();
> +        ProcessorTest proc = new ProcessorTest(this,log);        
> +        Script script = parser.parse(in);        
> +        script = script.compile();
> +        log.debug("Found: " + script);
> +        assertTrue("Parsed a Script", script instanceof Script);
> +        String[] args = { "one", "two", "three" };
> +        JellyContext context = new JellyContext();
> +        context.setVariable("proc",proc);
> +        context.setVariable("args", args);
> +        StringWriter buffer = new StringWriter();
> +        script.run(context, XMLOutput.createXMLOutput(buffer));
> +        String text = buffer.toString().trim();
> +        if (log.isDebugEnabled()) {
> +            log.debug("Evaluated script as...");
> +            log.debug(text);
> +            
> +        }
> +        log.info(text);
> +        assertEquals("Produces the correct output", "{{{one}{ }}{{two}{ }}{{three}{ }}}", text);
> +    }
>  }
> Index: src/java/org/apache/commons/jelly/tags/core/FileTag.java
> ===================================================================
> --- src/java/org/apache/commons/jelly/tags/core/FileTag.java	(revision 356995)
> +++ src/java/org/apache/commons/jelly/tags/core/FileTag.java	(working copy)
> @@ -16,6 +16,7 @@
>  package org.apache.commons.jelly.tags.core;
>  
>  import java.io.FileNotFoundException;
> +import java.io.OutputStream;
>  import java.io.FileOutputStream;
>  import java.io.IOException;
>  import java.io.OutputStreamWriter;
> @@ -23,6 +24,9 @@
>  import java.io.UnsupportedEncodingException;
>  import java.io.Writer;
>  
> +
> +import org.apache.commons.logging.*;
> +import org.apache.commons.vfs.*;
>  import org.apache.commons.jelly.JellyTagException;
>  import org.apache.commons.jelly.TagSupport;
>  import org.apache.commons.jelly.XMLOutput;
> @@ -35,8 +39,12 @@
>  /**
>   * A tag that pipes its body to a file denoted by the name attribute or to an in memory String
>   * which is then output to a variable denoted by the var variable.
> + * 
> + * It support apache VFS library. So you can write to other target than the local file system
> + * see <a href="jakarta.apache.org/commons/vfs/">VFS</a> for more infos
>   *
>   * @author <a href="mailto:vinayc@apache.org">Vinay Chandran</a>
> + * Modified by @author <a href="mailto:benoit.callebaut@gmail.com">Benoit Callebaut</a>
>   */
>  public class FileTag extends TagSupport {
>      private boolean doAppend = false;
> @@ -46,8 +54,17 @@
>      private String outputMode = "xml";
>      private boolean prettyPrint;
>      private String encoding;
> +    private Log log = LogFactory.getLog(FileTag.class);
> +    
> +    private FileSystemManager manager;
> +    private FileObject filebase;
>  
>      public FileTag(){
> +         try{
> +            manager = VFS.getManager();
> +        }catch (Exception e){
> +            log.error(this, e);
> +        }
>      }
>  
>      // Tag interface
> @@ -55,8 +72,42 @@
>      public void doTag(final XMLOutput output) throws JellyTagException {
>          try {
>              if ( name != null ) {
> +                OutputStream out = null;
>                  String encoding = (this.encoding != null) ? this.encoding : "UTF-8";
> -                Writer writer = new OutputStreamWriter( new FileOutputStream( name, doAppend ), encoding );
> +                Object obj = null;
> +                obj = getContext().getProperty("VFSManager");
> +                if ((obj == null) && (obj instanceof FileSystemManager)){
> +                    manager = (FileSystemManager)obj;
> +                }
> +                if (manager == null){
> +                    log.error("Manager not initialized. Falling back on old functionality");
> +                    if ( name != null ) {
> +                        out = new FileOutputStream( name, doAppend );
> +                    }
> +                }else{
> +                    obj = getContext().getProperty("VFS-Base");
> +                    if ((obj != null) && (obj instanceof FileObject)){
> +                        filebase = (FileObject)obj;
> +                    }else try{
> +                        filebase = manager.resolveFile("file://"+new java.io.File("./").getAbsolutePath());
> +                    }catch (Exception e){
> +                        log.error("Cannot get file. Try tofallback on old functionality", e);
> +                        out = new FileOutputStream( name, doAppend );
> +                    }
> +
> +                    encoding = (this.encoding != null) ? this.encoding : "UTF-8";
> +                    try{
> +                        log.info(filebase.getName().toString());
> +                        log.info(name);
> +                        FileObject file = filebase.resolveFile(name);
> +                        out = file.getContent().getOutputStream(doAppend);
> +                    }catch (Exception e){
> +                        log.error("Cannot get file. Try to fallback on old functionality", e);
> +                        out = new FileOutputStream( name, doAppend );
> +                    }
> +                }
> +            
> +                Writer writer = new OutputStreamWriter(out, encoding);
>                  writeBody(writer);
>              }
>              else if (var != null) {
> Index: src/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java
> ===================================================================
> --- src/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java	(revision 356995)
> +++ src/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java	(working copy)
> @@ -23,7 +23,7 @@
>    * This class could be generated by XDoclet
>    *
>    * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
> -  * @version $Revision$
> +  * @version $Revision: 155420 $
>    */
>  public class CoreTagLibrary extends TagLibrary {
>  
> @@ -68,6 +68,9 @@
>          registerTag("useBean", UseBeanTag.class);
>          registerTag("useList", UseListTag.class);
>          registerTag("whitespace", WhitespaceTag.class);
> +        
> +        //extra tags
> +        registerTag("attribute",AttributeTag.class);
>      }
>  
>  }
> Index: src/java/org/apache/commons/jelly/impl/TagScript.java
> ===================================================================
> --- src/java/org/apache/commons/jelly/impl/TagScript.java	(revision 356995)
> +++ src/java/org/apache/commons/jelly/impl/TagScript.java	(working copy)
> @@ -56,7 +56,7 @@
>   * concurrently by multiple threads.
>   *
>   * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
> - * @version $Revision$
> + * @version $Revision: 227285 $
>   */
>  public class TagScript implements Script {
>  
> @@ -211,6 +211,7 @@
>              if ( tag == null ) {
>                  return;
>              }
> +            
>              tag.setContext(context);
>              setContextURLs(context);
>  
> @@ -259,7 +260,24 @@
>                  }
>              }
>  
> +            Object pre_content = context.getProperty("pre-content");
> +            if (pre_content != null){
> +                if (pre_content instanceof org.apache.commons.jelly.tags.core.TagProcessor){
> +                    ((org.apache.commons.jelly.tags.core.TagProcessor)pre_content).preprocessTag(tag,context,output);
> +                }else{
> +                    throw new JellyTagException("pre-content bad type"+pre_content.getClass().getCanonicalName());
> +                }
> +            }
> +            
>              tag.doTag(output);
> +            
> +            if (pre_content != null){
> +                if (pre_content instanceof org.apache.commons.jelly.tags.core.TagProcessor){
> +                    ((org.apache.commons.jelly.tags.core.TagProcessor)pre_content).postprocessTag(tag,context,output);
> +                }else{
> +                    throw new JellyTagException("pre-content bad type"+pre_content.getClass().getCanonicalName());
> +                }
> +            }            
>              if (output != null) {
>                  output.flush();
>              }
> Index: src/java/org/apache/commons/jelly/impl/TextScript.java
> ===================================================================
> --- src/java/org/apache/commons/jelly/impl/TextScript.java	(revision 356995)
> +++ src/java/org/apache/commons/jelly/impl/TextScript.java	(working copy)
> @@ -20,15 +20,21 @@
>  import org.apache.commons.jelly.Script;
>  import org.apache.commons.jelly.XMLOutput;
>  
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
>  import org.xml.sax.SAXException;
>  
>  /** <p><code>TextScript</code> outputs some static text.</p>
>    *
>    * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
> -  * @version $Revision$
> +  * @version $Revision: 155420 $
>    */
>  public class TextScript implements Script {
>  
> +    /** The Log to which logging calls will be made. */
> +    private static final Log log = LogFactory.getLog(TextScript.class);
> +    
>      /** the text output by this script */
>      private String text;
>  
> @@ -101,6 +107,15 @@
>  
>      /** Evaluates the body of a tag */
>      public void run(JellyContext context, XMLOutput output) throws JellyTagException {
> +        Object pre_content = context.getProperty("pre-content");
> +
> +        if (pre_content != null){
> +            if (pre_content instanceof org.apache.commons.jelly.tags.core.TagProcessor){
> +                ((org.apache.commons.jelly.tags.core.TagProcessor)pre_content).preprocessTag(text,context,output);
> +            }else{
> +                throw new JellyTagException("pre-content bad type "+pre_content.getClass().getCanonicalName());
> +            }
> +        }
>          if ( text != null ) {
>              try {
>                output.write(text);
> @@ -108,5 +123,12 @@
>                  throw new JellyTagException("could not write to XMLOutput",e);
>              }
>          }
> +        if (pre_content != null){
> +            if (pre_content instanceof org.apache.commons.jelly.tags.core.TagProcessor){
> +                ((org.apache.commons.jelly.tags.core.TagProcessor)pre_content).postprocessTag(text,context,output);
> +            }else{
> +                throw new JellyTagException("pre-content bad type "+pre_content.getClass().getCanonicalName());
> +            }
> +        }
>      }
>  }
> Index: src/java/org/apache/commons/jelly/JellyContext.java
> ===================================================================
> --- src/java/org/apache/commons/jelly/JellyContext.java	(revision 356995)
> +++ src/java/org/apache/commons/jelly/JellyContext.java	(working copy)
> @@ -36,7 +36,8 @@
>    * <p><code>JellyContext</code> represents the Jelly context.</p>
>    *
>    * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
> -  * @version $Revision$
> +  * @author <a href="mailto:benoit.callebaut@gmail.com">Benoit Callebaut</a>
> +  * @version $Revision: 227285 $
>    */
>  public class JellyContext {
>  
> @@ -77,6 +78,9 @@
>  
>      /** synchronized access to the variables in scope */
>      private Map variables = new Hashtable();
> +    
> +    /** synchronized access to the properties */
> +    private Hashtable properties = new Hashtable();
>  
>      /** The parent context */
>      private JellyContext parent;
> @@ -133,6 +137,7 @@
>          this.rootURL = parent.rootURL;
>          this.currentURL = parent.currentURL;
>          this.variables.put("parentScope", parent.variables);
> +        this.properties.putAll(parent.getProperties());
>          this.cacheTags = parent.cacheTags;
>          init();
>      }
> @@ -262,6 +267,22 @@
>          return null;
>      }
>  
> +    public Hashtable getProperties(){
> +        return properties;
> +    }
> +    
> +    public Object setProperty(String name, Object value){
> +        return properties.put(name,value);
> +    }
> +    
> +    public Object getProperty(String name){
> +        try{
> +            return properties.get(name);
> +        }catch (Exception e){
> +            return null;
> +        }
> +    }
> +
>      /**
>       * @return the value of the given variable name in the given variable scope
>       * @param name is the name of the variable
> @@ -367,6 +388,7 @@
>          newVariables.put("parentScope", variables);
>          JellyContext answer = createChildContext();
>          answer.setVariables(newVariables);
> +        answer.getProperties().putAll(properties);
>          return answer;
>      }
>  
> Index: parent-project.xml
> ===================================================================
> --- parent-project.xml	(revision 356995)
> +++ parent-project.xml	(working copy)
> @@ -1,3 +1,4 @@
> +<?xml version="1.0" encoding="UTF-8"?>
>  <!--
>    Copyright 2002,2004 The Apache Software Foundation.
>    
> @@ -13,78 +14,69 @@
>    See the License for the specific language governing permissions and
>    limitations under the License.
>  -->
> -
>  <project>
> -  <!-- TODO: should this inherit commons-build? -->
> -  <artifactId>commons-jelly-parent</artifactId>
> -  <groupId>commons-jelly</groupId>
> -
> -  <dependencies>
> -    <!-- 
> +    <!-- TODO: should this inherit commons-build? -->
> +    <artifactId>commons-jelly-parent</artifactId>
> +    <groupId>commons-jelly</groupId>
> +    <dependencies>
> +        <!-- 
>        the common Maven dependencies for Jelly shared by the core
>        build and all individual taglib builds.  Use this
>        file to keep all dependency versions in sync.
>        Does not include CLI (Command Line Interface).
>      -->
> -    
> -    <dependency>
> -      <groupId>commons-jexl</groupId>
> -      <artifactId>commons-jexl</artifactId>
> -      <version>1.0</version>
> -    </dependency>
> -    
> -    <dependency>
> -      <groupId>xml-apis</groupId>
> -      <artifactId>xml-apis</artifactId>
> -      <version>1.0.b2</version>
> -    </dependency>
> -    
> -    <dependency>
> -      <groupId>commons-beanutils</groupId>
> -      <artifactId>commons-beanutils</artifactId>
> -      <version>1.6</version>
> -      <properties>
> -        <gump.runtime>true</gump.runtime>
> -      </properties>
> -    </dependency>
> -    
> -    <dependency>
> -      <groupId>commons-collections</groupId>
> -      <artifactId>commons-collections</artifactId>
> -      <version>2.1</version>
> -      <properties>
> -        <gump.runtime>true</gump.runtime>
> -      </properties>
> -    </dependency>
> -    
> -    <dependency>
> -      <groupId>commons-logging</groupId>
> -      <artifactId>commons-logging</artifactId>
> -      <version>1.0.3</version>
> -      <properties>
> -        <gump.runtime>true</gump.runtime>
> -      </properties>
> -    </dependency>
> -    
> -    <dependency>
> -      <groupId>dom4j</groupId>
> -      <artifactId>dom4j</artifactId>
> -      <version>1.5.2</version>
> -    </dependency>
> -
> -    <dependency>
> -      <groupId>jaxen</groupId>
> -      <artifactId>jaxen</artifactId>
> -      <version>1.1-beta-4</version>
> -    </dependency>
> -
> -    <dependency>
> -      <groupId>xerces</groupId>
> -      <artifactId>xerces</artifactId>
> -      <version>2.2.1</version>
> -      <properties>
> -        <gump.project>xml-xerces</gump.project>
> -      </properties>
> -    </dependency>
> -  </dependencies>
> +        <dependency>
> +            <groupId>commons-jexl</groupId>
> +            <artifactId>commons-jexl</artifactId>
> +            <version>1.0</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>xml-apis</groupId>
> +            <artifactId>xml-apis</artifactId>
> +            <version>1.0.b2</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>commons-beanutils</groupId>
> +            <artifactId>commons-beanutils</artifactId>
> +            <version>1.6</version>
> +            <properties>
> +                <gump.runtime>true</gump.runtime>
> +            </properties>
> +        </dependency>
> +        <dependency>
> +            <groupId>commons-collections</groupId>
> +            <artifactId>commons-collections</artifactId>
> +            <version>2.1</version>
> +            <properties>
> +                <gump.runtime>true</gump.runtime>
> +            </properties>
> +        </dependency>
> +        <dependency>
> +            <groupId>commons-logging</groupId>
> +            <artifactId>commons-logging</artifactId>
> +            <version>1.0.3</version>
> +            <properties>
> +                <gump.runtime>true</gump.runtime>
> +            </properties>
> +        </dependency>
> +        <dependency>
> +            <groupId>dom4j</groupId>
> +            <artifactId>dom4j</artifactId>
> +            <version>1.5.2</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>jaxen</groupId>
> +            <artifactId>jaxen</artifactId>
> +            <version>1.1-beta-4</version>
> +        </dependency>
> +        <dependency>
> +            <groupId>xerces</groupId>
> +            <artifactId>xerces</artifactId>
> +            <version>2.2.1</version>
> +            <properties>
> +                <gump.project>xml-xerces</gump.project>
> +            </properties>
> +        </dependency>
> +    </dependencies>
>  </project>
> +
> Index: project.xml
> ===================================================================
> --- project.xml	(revision 356995)
> +++ project.xml	(working copy)
> @@ -1,5 +1,4 @@
>  <?xml version="1.0" encoding="UTF-8"?>
> -
>  <!--
>    Copyright 2002,2004 The Apache Software Foundation.
>    
> @@ -15,415 +14,392 @@
>    See the License for the specific language governing permissions and
>    limitations under the License.
>  -->
> -
>  <project>
> -  <extend>parent-project.xml</extend>
> -  <pomVersion>3</pomVersion>
> -  <name>commons-jelly</name>
> -  <artifactId>commons-jelly</artifactId>
> -  <currentVersion>1.1-SNAPSHOT</currentVersion>
> -  <organization>
> -    <name>Apache Software Foundation</name>
> -    <url>http://jakarta.apache.org</url>
> -    <logo>http://jakarta.apache.org/images/original-jakarta-logo.gif</logo>
> -  </organization>
> -  <logo>/images/logo.jpg</logo>
> -  <gumpRepositoryId>jakarta</gumpRepositoryId>
> -  <inceptionYear>2002</inceptionYear>
> -  <package>org.apache.commons.jelly</package>
> -  <packageGroups>
> -    <packageGroup>
> -      <title>Core Public API</title>
> -      <packages>org.apache.commons.jelly</packages>
> -    </packageGroup>
> -    <packageGroup>
> -      <title>Utility classes for using Jelly from Ant</title>
> -      <packages>org.apache.commons.jelly.task</packages>
> -    </packageGroup>
> -    <packageGroup>
> -      <title>Utility classes for using Jelly from Servlets</title>
> -      <packages>org.apache.commons.jelly.servlet</packages>
> -    </packageGroup>
> -    <packageGroup>
> -      <title>Classes used by Tag Implementors</title>
> -      <packages>org.apache.commons.jelly.impl,org.apache.commons.jelly.tags,org.apache.commons.jelly.expression</packages>
> -    </packageGroup>
> -    <packageGroup>
> -      <title>Tag Implementations</title>
> -      <packages>org.apache.commons.jelly.tags.*</packages>
> -    </packageGroup>
> -  </packageGroups>
> -  <shortDescription>Commons Jelly</shortDescription>
> -  <description>Jelly is a Java and XML based scripting engine. Jelly combines the best ideas from JSTL, Velocity, DVSL, Ant and Cocoon all together in a simple yet powerful scripting engine.</description>
> -  <url>http://jakarta.apache.org/commons/jelly/</url>
> -  <issueTrackingUrl>http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10012</issueTrackingUrl>
> -  <siteAddress>cvs.apache.org</siteAddress>
> -  <siteDirectory>/www/jakarta.apache.org/commons/${pom.artifactId.substring(8)}/</siteDirectory>
> -  <distributionSite>cvs.apache.org</distributionSite>
> -  <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons/${pom.artifactId.substring(8)}/</distributionDirectory>
> -  <repository>
> -    <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/proper/jelly/trunk</connection>
> -    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/jakarta/commons/proper/jelly/trunk</developerConnection>
> -    <url>http://svn.apache.org/viewcvs.cgi/jakarta/commons/proper/jelly/trunk</url>
> -  </repository>
> -  <mailingLists>
> -    <mailingList>
> -      <name>Commons Dev List</name>
> -      <subscribe>commons-dev-subscribe@jakarta.apache.org</subscribe>
> -      <unsubscribe>commons-dev-unsubscribe@jakarta.apache.org</unsubscribe>
> -      <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-dev@jakarta.apache.org</archive>
> -    </mailingList>
> -    <mailingList>
> -      <name>Commons User List</name>
> -      <subscribe>commons-user-subscribe@jakarta.apache.org</subscribe>
> -      <unsubscribe>commons-user-unsubscribe@jakarta.apache.org</unsubscribe>
> -      <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-user@jakarta.apache.org</archive>
> -    </mailingList>
> -  </mailingLists>
> -  <versions>
> -    <version>
> -      <id>1.0-beta-1</id>
> -      <name>1.0-beta-1</name>
> -      <tag>1.0-beta-1</tag>
> -    </version>
> -    <version>
> -      <id>1.0-beta-4</id>
> -      <name>1.0-beta-4</name>
> -      <tag>COMMONS-JELLY-1_0-beta-4</tag>
> -    </version>
> -    <version>
> -      <id>1.0-RC1</id>
> -      <name>1.0-RC1</name>
> -      <tag>COMMONS_JELLY-1_0_RC1</tag>
> -    </version>
> -    <version>
> -      <id>1.0</id>
> -      <name>1.0</name>
> -      <tag>commons-jelly-1.0</tag>
> -    </version>
> -  </versions>
> -  <branches/>
> -  <developers>
> -    <developer>
> -      <name>James Strachan</name>
> -      <id>jstrachan</id>
> -      <email>jstrachan@apache.org</email>
> -      <organization>SpiritSoft, Inc.</organization>
> -    </developer>
> -    <developer>
> -      <name>Geir Magnusson Jr.</name>
> -      <id>geirm</id>
> -      <email>geirm@adeptra.com</email>
> -      <organization>Adeptra, Inc.</organization>
> -    </developer>
> -    <developer>
> -      <name>Bob McWhirter</name>
> -      <id>werken</id>
> -      <email>bob@eng.werken.com</email>
> -      <organization>The Werken Company</organization>
> -    </developer>
> -    <developer>
> -      <name>dIon Gillard</name>
> -      <id>dion</id>
> -      <email>dion@multitask.com.au</email>
> -      <organization>Multitask Consulting</organization>
> -      <roles>
> -        <role>Interested party</role>
> -      </roles>
> -    </developer>
> -    <developer>
> -      <name>Morgan Delagrange</name>
> -      <id>morgand</id>
> -      <email>morgand@apache.org</email>
> -    </developer>
> -    <developer>
> -      <name>Rodney Waldhoff</name>
> -      <id>rwaldhoff</id>
> -      <email>rwaldhoff@apache.org</email>
> -    </developer>
> -    <developer>
> -      <name>Peter Royal</name>
> -      <id>proyal</id>
> -      <email>proyal@apache.org</email>
> -    </developer>
> -    <developer>
> -      <name>Martin van den Bemt</name>
> -      <id>mvdb</id>
> -      <email>martin@mvdb.net</email>
> -    </developer>
> -    <developer>
> -      <name>Paul Libbrecht</name>
> -      <id>polx</id>
> -      <email>paul@activemath.org</email>
> -    </developer>
> -    <developer>
> -      <name>Robert Burrell Donkin</name>
> -      <id>rdonkin</id>
> -      <email>rdonkin@apache.org</email>
> -    </developer>
> -    <developer>
> -      <name>Daniel F. Savarese</name>
> -      <id>dfs</id>
> -      <email>dfs -&gt; apache.org</email>
> -    </developer>
> -    <developer>
> -      <name>Brett Porter</name>
> -      <id>brett</id>
> -      <email>brett@apache.org</email>
> -    </developer>
> -    <developer>
> -      <name>Hans Gilde</name>
> -      <id>hgilde</id>
> -      <email>hgilde@apache.org</email>
> -    </developer>
> -  </developers>
> -  <contributors>
> -    <contributor>
> -      <name>Erik Fransen</name>
> -      <email>erik167@xs4all.nl</email>
> -      <roles>
> -        <role>Logo designer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Calvin Yu</name>
> -    </contributor>
> -    <contributor>
> -      <name>Stephen Haberman</name>
> -      <email>stephenh@chase3000.com</email>
> -    </contributor>
> -    <contributor>
> -      <name>Vinay Chandran</name>
> -      <email>sahilvinay@yahoo.com</email>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Theo Niemeijer</name>
> -    </contributor>
> -    <contributor>
> -      <name>Joe Walnes</name>
> -      <email>joew@thoughtworks.com</email>
> -      <organization>ThoughtWorks, Inc.</organization>
> -      <roles>
> -        <role>Inventor of Mock Tags</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Otto von Wachter</name>
> -      <email>vonwao@yahoo.com</email>
> -      <organization/>
> -      <roles>
> -        <role>Author of the tutorials</role>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Robert Leftwich</name>
> -      <email>robert@leftwich.info</email>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Jim Birchfield</name>
> -      <email>jim.birchfield@genscape.com</email>
> -      <organization>Genscape, Inc.</organization>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Jason Horman</name>
> -      <email>jhorman@musicmatch.com</email>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Tim Anderson</name>
> -      <email>tima@intalio.com</email>
> -      <organization>Intalio, Inc.</organization>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Theo Niemeijer</name>
> -      <email>theo.niemeijer@getthere.nl</email>
> -      <organization/>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>J. Matthew Pryor</name>
> -      <email>matthew_pryor@versata.com</email>
> -      <organization/>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Knut Wannheden</name>
> -      <email/>
> -      <organization/>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Kelvin Tan</name>
> -      <email/>
> -      <organization/>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Todd Jonker</name>
> -      <email/>
> -      <organization/>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Christiaan ten Klooster</name>
> -      <email/>
> -      <organization/>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -    <contributor>
> -      <name>Pete Kazmier</name>
> -      <email>kaz@apache.org</email>
> -      <organization/>
> -      <roles>
> -        <role>Developer</role>
> -      </roles>
> -    </contributor>
> -  </contributors>
> -  <dependencies>
> -    <!-- for servlet support -->
> -
> -    <dependency>
> -      <groupId>servletapi</groupId>
> -      <artifactId>servletapi</artifactId>
> -      <version>2.3</version>
> -      <properties>
> -        <gump.project>jakarta-servletapi-5-servlet</gump.project>
> -      </properties>
> -    </dependency>
> -    <!-- for command line interface support -->
> -
> -    <dependency>
> -      <groupId>commons-cli</groupId>
> -      <artifactId>commons-cli</artifactId>
> -      <version>1.0</version>
> -    </dependency>
> -    <!-- this is brought in by the commons-cli dependency -->
> -
> -    <dependency>
> -      <groupId>commons-lang</groupId>
> -      <artifactId>commons-lang</artifactId>
> -      <version>2.0</version>
> -      <properties>
> -        <gump.runtime>true</gump.runtime>
> -      </properties>
> -    </dependency>
> -    <dependency>
> -      <groupId>commons-discovery</groupId>
> -      <artifactId>commons-discovery</artifactId>
> -      <version>20030211.213356</version>
> -    </dependency>
> -    <!-- for the jelly startup scripts -->
> -
> -    <dependency>
> -      <groupId>forehead</groupId>
> -      <artifactId>forehead</artifactId>
> -      <version>1.0-beta-5</version>
> -      <url>http://forehead.werken.com/</url>
> -    </dependency>
> -    <!-- for the jstl interfaces -->
> -
> -    <dependency>
> -      <groupId>jstl</groupId>
> -      <artifactId>jstl</artifactId>
> -      <version>1.0.6</version>
> -      <url>http://jakarta.apache.org/taglibs/doc/standard-1.0-doc/intro.html</url>
> -      <properties>
> -        <gump.project>jakarta-taglibs-standard</gump.project>
> -        <gump.id>jstl</gump.id>
> -      </properties>
> -    </dependency>
> -    <dependency>
> -      <groupId>junit</groupId>
> -      <artifactId>junit</artifactId>
> -      <version>3.8.1</version>
> -      <url>http://junit.org</url>
> -    </dependency>
> -  </dependencies>
> -  <build>
> -    <nagEmailAddress>commons-dev@jakarta.apache.org</nagEmailAddress>
> -    <sourceDirectory>${basedir}/src/java</sourceDirectory>
> -    <resources>
> -      <resource>
> -        <directory>${basedir}</directory>
> -        <targetPath>META-INF</targetPath>
> -        <includes>
> -          <include>NOTICE.txt</include>
> -        </includes>
> -      </resource>
> -      <resource>
> -        <directory>${basedir}/src/java</directory>
> -        <includes>
> -          <include>**/*.properties</include>
> -        </includes>
> -      </resource>
> -    </resources>
> -    <unitTestSourceDirectory>${basedir}/src/test</unitTestSourceDirectory>
> -    <!-- Unit test classes -->
> -
> -    <unitTest>
> -      <includes>
> -        <include>**/Test*.java</include>
> -      </includes>
> -      <excludes>
> -        <exclude>**/TestCoreMemoryLeak.java</exclude>
> -      </excludes>
> -      <resources>
> -        <resource>
> -          <directory>src/test</directory>
> -          <includes>
> -            <include>META-INF/services/*</include>
> -            <include>**/*.jelly</include>
> -            <include>**/*.xml</include>
> -            <include>**/*.xsl</include>
> -            <include>**/*.rng</include>
> -            <include>**/*.dtd</include>
> -            <include>**/*.properties</include>
> -            <include>**/*.html</include>
> -          </includes>
> -        </resource>
> -      </resources>
> -    </unitTest>
> -  </build>
> -  <reports>
> -    <report>maven-changelog-plugin</report>
> -    <report>maven-changes-plugin</report>
> -    <report>maven-checkstyle-plugin</report>
> -    <report>maven-developer-activity-plugin</report>
> -    <report>maven-file-activity-plugin</report>
> -    <report>maven-javadoc-plugin</report>
> -    <report>maven-jcoverage-plugin</report>
> -    <report>maven-jdepend-plugin</report>
> -    <report>maven-junit-report-plugin</report>
> -    <report>maven-jxr-plugin</report>
> -    <report>maven-license-plugin</report>
> -    <report>maven-pmd-plugin</report>
> -    <report>maven-tasklist-plugin</report>
> -  </reports>
> + <extend>parent-project.xml</extend>
> + <pomVersion>3</pomVersion>
> + <name>commons-jelly</name>
> + <artifactId>commons-jelly</artifactId>
> + <currentVersion>1.1-SNAPSHOT</currentVersion>
> + <organization>
> +  <name>Apache Software Foundation</name>
> +  <url>http://jakarta.apache.org</url>
> +  <logo>http://jakarta.apache.org/images/original-jakarta-logo.gif</logo>
> + </organization>
> + <logo>/images/logo.jpg</logo>
> + <gumpRepositoryId>jakarta</gumpRepositoryId>
> + <inceptionYear>2002</inceptionYear>
> + <package>org.apache.commons.jelly</package>
> + <packageGroups>
> +  <packageGroup>
> +   <title>Core Public API</title>
> +   <packages>org.apache.commons.jelly</packages>
> +  </packageGroup>
> +  <packageGroup>
> +   <title>Utility classes for using Jelly from Ant</title>
> +   <packages>org.apache.commons.jelly.task</packages>
> +  </packageGroup>
> +  <packageGroup>
> +   <title>Utility classes for using Jelly from Servlets</title>
> +   <packages>org.apache.commons.jelly.servlet</packages>
> +  </packageGroup>
> +  <packageGroup>
> +   <title>Classes used by Tag Implementors</title>
> +   <packages>org.apache.commons.jelly.impl,org.apache.commons.jelly.tags,org.apache.commons.jelly.expression</packages>
> +  </packageGroup>
> +  <packageGroup>
> +   <title>Tag Implementations</title>
> +   <packages>org.apache.commons.jelly.tags.*</packages>
> +  </packageGroup>
> + </packageGroups>
> + <shortDescription>Commons Jelly</shortDescription>
> + <description>Jelly is a Java and XML based scripting engine. Jelly combines the best ideas from JSTL, Velocity, DVSL, Ant and Cocoon all together in a simple yet powerful scripting engine.</description>
> + <url>http://jakarta.apache.org/commons/jelly/</url>
> + <issueTrackingUrl>http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10012</issueTrackingUrl>
> + <siteAddress>cvs.apache.org</siteAddress>
> + <siteDirectory>/www/jakarta.apache.org/commons/${pom.artifactId.substring(8)}/</siteDirectory>
> + <distributionSite>cvs.apache.org</distributionSite>
> + <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons/${pom.artifactId.substring(8)}/</distributionDirectory>
> + <repository>
> +  <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/proper/jelly/trunk</connection>
> +  <developerConnection>scm:svn:https://svn.apache.org/repos/asf/jakarta/commons/proper/jelly/trunk</developerConnection>
> +  <url>http://svn.apache.org/viewcvs.cgi/jakarta/commons/proper/jelly/trunk</url>
> + </repository>
> + <mailingLists>
> +  <mailingList>
> +   <name>Commons Dev List</name>
> +   <subscribe>commons-dev-subscribe@jakarta.apache.org</subscribe>
> +   <unsubscribe>commons-dev-unsubscribe@jakarta.apache.org</unsubscribe>
> +   <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-dev@jakarta.apache.org</archive>
> +  </mailingList>
> +  <mailingList>
> +   <name>Commons User List</name>
> +   <subscribe>commons-user-subscribe@jakarta.apache.org</subscribe>
> +   <unsubscribe>commons-user-unsubscribe@jakarta.apache.org</unsubscribe>
> +   <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-user@jakarta.apache.org</archive>
> +  </mailingList>
> + </mailingLists>
> + <versions>
> +  <version>
> +   <id>1.0-beta-1</id>
> +   <name>1.0-beta-1</name>
> +   <tag>1.0-beta-1</tag>
> +  </version>
> +  <version>
> +   <id>1.0-beta-4</id>
> +   <name>1.0-beta-4</name>
> +   <tag>COMMONS-JELLY-1_0-beta-4</tag>
> +  </version>
> +  <version>
> +   <id>1.0-RC1</id>
> +   <name>1.0-RC1</name>
> +   <tag>COMMONS_JELLY-1_0_RC1</tag>
> +  </version>
> +  <version>
> +   <id>1.0</id>
> +   <name>1.0</name>
> +   <tag>commons-jelly-1.0</tag>
> +  </version>
> + </versions>
> + <developers>
> +  <developer>
> +   <name>James Strachan</name>
> +   <id>jstrachan</id>
> +   <email>jstrachan@apache.org</email>
> +   <organization>SpiritSoft, Inc.</organization>
> +  </developer>
> +  <developer>
> +   <name>Geir Magnusson Jr.</name>
> +   <id>geirm</id>
> +   <email>geirm@adeptra.com</email>
> +   <organization>Adeptra, Inc.</organization>
> +  </developer>
> +  <developer>
> +   <name>Bob McWhirter</name>
> +   <id>werken</id>
> +   <email>bob@eng.werken.com</email>
> +   <organization>The Werken Company</organization>
> +  </developer>
> +  <developer>
> +   <name>dIon Gillard</name>
> +   <id>dion</id>
> +   <email>dion@multitask.com.au</email>
> +   <organization>Multitask Consulting</organization>
> +   <roles>
> +    <role>Interested party</role>
> +   </roles>
> +  </developer>
> +  <developer>
> +   <name>Morgan Delagrange</name>
> +   <id>morgand</id>
> +   <email>morgand@apache.org</email>
> +  </developer>
> +  <developer>
> +   <name>Rodney Waldhoff</name>
> +   <id>rwaldhoff</id>
> +   <email>rwaldhoff@apache.org</email>
> +  </developer>
> +  <developer>
> +   <name>Peter Royal</name>
> +   <id>proyal</id>
> +   <email>proyal@apache.org</email>
> +  </developer>
> +  <developer>
> +   <name>Martin van den Bemt</name>
> +   <id>mvdb</id>
> +   <email>martin@mvdb.net</email>
> +  </developer>
> +  <developer>
> +   <name>Paul Libbrecht</name>
> +   <id>polx</id>
> +   <email>paul@activemath.org</email>
> +  </developer>
> +  <developer>
> +   <name>Robert Burrell Donkin</name>
> +   <id>rdonkin</id>
> +   <email>rdonkin@apache.org</email>
> +  </developer>
> +  <developer>
> +   <name>Daniel F. Savarese</name>
> +   <id>dfs</id>
> +   <email>dfs -&gt; apache.org</email>
> +  </developer>
> +  <developer>
> +   <name>Brett Porter</name>
> +   <id>brett</id>
> +   <email>brett@apache.org</email>
> +  </developer>
> +  <developer>
> +   <name>Hans Gilde</name>
> +   <id>hgilde</id>
> +   <email>hgilde@apache.org</email>
> +  </developer>
> + </developers>
> + <contributors>
> +  <contributor>
> +   <name>Erik Fransen</name>
> +   <email>erik167@xs4all.nl</email>
> +   <roles>
> +    <role>Logo designer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Calvin Yu</name>
> +  </contributor>
> +  <contributor>
> +   <name>Stephen Haberman</name>
> +   <email>stephenh@chase3000.com</email>
> +  </contributor>
> +  <contributor>
> +   <name>Vinay Chandran</name>
> +   <email>sahilvinay@yahoo.com</email>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Joe Walnes</name>
> +   <email>joew@thoughtworks.com</email>
> +   <organization>ThoughtWorks, Inc.</organization>
> +   <roles>
> +    <role>Inventor of Mock Tags</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Otto von Wachter</name>
> +   <email>vonwao@yahoo.com</email>
> +   <roles>
> +    <role>Author of the tutorials</role>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Robert Leftwich</name>
> +   <email>robert@leftwich.info</email>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Jim Birchfield</name>
> +   <email>jim.birchfield@genscape.com</email>
> +   <organization>Genscape, Inc.</organization>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Jason Horman</name>
> +   <email>jhorman@musicmatch.com</email>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Tim Anderson</name>
> +   <email>tima@intalio.com</email>
> +   <organization>Intalio, Inc.</organization>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>J. Matthew Pryor</name>
> +   <email>matthew_pryor@versata.com</email>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Knut Wannheden</name>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Kelvin Tan</name>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Todd Jonker</name>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Christiaan ten Klooster</name>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> +  <contributor>
> +   <name>Pete Kazmier</name>
> +   <email>kaz@apache.org</email>
> +   <roles>
> +    <role>Developer</role>
> +   </roles>
> +  </contributor>
> + </contributors>
> + <dependencies>
> +  <!-- for servlet support -->
> +  <dependency>
> +   <groupId>servletapi</groupId>
> +   <artifactId>servletapi</artifactId>
> +   <version>2.3</version>
> +   <properties>
> +    <gump.project>jakarta-servletapi-5-servlet</gump.project>
> +   </properties>
> +  </dependency>
> +  <!-- for command line interface support -->
> +  <dependency>
> +   <groupId>commons-cli</groupId>
> +   <artifactId>commons-cli</artifactId>
> +   <version>1.0</version>
> +  </dependency>
> +  <!-- this is brought in by the commons-cli dependency -->
> +  <dependency>
> +   <groupId>commons-lang</groupId>
> +   <artifactId>commons-lang</artifactId>
> +   <version>2.0</version>
> +   <properties>
> +    <gump.runtime>true</gump.runtime>
> +   </properties>
> +  </dependency>
> +  <dependency>
> +   <groupId>commons-discovery</groupId>
> +   <artifactId>commons-discovery</artifactId>
> +   <version>20030211.213356</version>
> +  </dependency>
> +  <!-- for the jelly startup scripts -->
> +  <dependency>
> +   <groupId>forehead</groupId>
> +   <artifactId>forehead</artifactId>
> +   <version>1.0-beta-5</version>
> +   <url>http://forehead.werken.com/</url>
> +  </dependency>
> +  <!-- for the jstl interfaces -->
> +  <dependency>
> +   <groupId>jstl</groupId>
> +   <artifactId>jstl</artifactId>
> +   <version>1.0.6</version>
> +   <url>http://jakarta.apache.org/taglibs/doc/standard-1.0-doc/intro.html</url>
> +   <properties>
> +    <gump.project>jakarta-taglibs-standard</gump.project>
> +    <gump.id>jstl</gump.id>
> +   </properties>
> +  </dependency>
> +  <dependency>
> +   <groupId>junit</groupId>
> +   <artifactId>junit</artifactId>
> +   <version>3.8.1</version>
> +   <url>http://junit.org</url>
> +  </dependency>
> +  <dependency>
> +   <groupId>commons-vfs</groupId>
> +   <artifactId>commons-vfs</artifactId>
> +   <version>20050307052300</version>
> +   <type>jar</type>
> +  </dependency>
> + </dependencies>
> + <build>
> +  <nagEmailAddress>commons-dev@jakarta.apache.org</nagEmailAddress>
> +  <sourceDirectory>${basedir}/src/java</sourceDirectory>
> +  <resources>
> +   <resource>
> +    <directory>${basedir}</directory>
> +    <targetPath>META-INF</targetPath>
> +    <includes>
> +     <include>NOTICE.txt</include>
> +    </includes>
> +   </resource>
> +   <resource>
> +    <directory>${basedir}/src/java</directory>
> +    <includes>
> +     <include>**/*.properties</include>
> +    </includes>
> +   </resource>
> +  </resources>
> +  <unitTestSourceDirectory>${basedir}/src/test</unitTestSourceDirectory>
> +  <!-- Unit test classes -->
> +  <unitTest>
> +   <includes>
> +    <include>**/Test*.java</include>
> +   </includes>
> +   <excludes>
> +    <exclude>**/TestCoreMemoryLeak.java</exclude>
> +   </excludes>
> +   <resources>
> +    <resource>
> +     <directory>src/test</directory>
> +     <includes>
> +      <include>META-INF/services/*</include>
> +      <include>**/*.jelly</include>
> +      <include>**/*.xml</include>
> +      <include>**/*.xsl</include>
> +      <include>**/*.rng</include>
> +      <include>**/*.dtd</include>
> +      <include>**/*.properties</include>
> +      <include>**/*.html</include>
> +     </includes>
> +    </resource>
> +   </resources>
> +  </unitTest>
> + </build>
> + <reports>
> +  <report>maven-changelog-plugin</report>
> +  <report>maven-changes-plugin</report>
> +  <report>maven-checkstyle-plugin</report>
> +  <report>maven-developer-activity-plugin</report>
> +  <report>maven-file-activity-plugin</report>
> +  <report>maven-javadoc-plugin</report>
> +  <report>maven-jcoverage-plugin</report>
> +  <report>maven-jdepend-plugin</report>
> +  <report>maven-junit-report-plugin</report>
> +  <report>maven-jxr-plugin</report>
> +  <report>maven-license-plugin</report>
> +  <report>maven-pmd-plugin</report>
> +  <report>maven-tasklist-plugin</report>
> + </reports>
>  </project>
> +
>
>   
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org