<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>commons-jelly</groupId>
  <artifactId>commons-jelly</artifactId>
  <name>commons-jelly</name>
  <version>1.0.1</version>
  <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://commons.apache.org/commons/jelly/</url>
  <issueManagement>
    <url>
      http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10012
    </url>
  </issueManagement>
  <ciManagement>
    <notifiers>
      <notifier>
        <configuration>
          <address>commons-dev@jakarta.apache.org</address>
        </configuration>
      </notifier>
    </notifiers>
  </ciManagement>
  <inceptionYear>2002</inceptionYear>
  <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>
  <developers>
    <developer>
      <id>jstrachan</id>
      <name>James Strachan</name>
      <email>jstrachan@apache.org</email>
      <url/>
      <organization>SpiritSoft, Inc.</organization>
      <timezone/>
    </developer>
    <developer>
      <id>geirm</id>
      <name>Geir Magnusson Jr.</name>
      <email>geirm@adeptra.com</email>
      <url/>
      <organization>Adeptra, Inc.</organization>
      <timezone/>
    </developer>
    <developer>
      <id>werken</id>
      <name>Bob McWhirter</name>
      <email>bob@eng.werken.com</email>
      <url/>
      <organization>The Werken Company</organization>
      <timezone/>
    </developer>
    <developer>
      <id>dion</id>
      <name>dIon Gillard</name>
      <email>dion@multitask.com.au</email>
      <url/>
      <organization>Multitask Consulting</organization>
      <roles>
        <role>Interested party</role>
      </roles>
      <timezone/>
    </developer>
    <developer>
      <id>morgand</id>
      <name>Morgan Delagrange</name>
      <email>morgand@apache.org</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
    <developer>
      <id>rwaldhoff</id>
      <name>Rodney Waldhoff</name>
      <email>rwaldhoff@apache.org</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
    <developer>
      <id>proyal</id>
      <name>Peter Royal</name>
      <email>proyal@apache.org</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
    <developer>
      <id>mvdb</id>
      <name>Martin van den Bemt</name>
      <email>martin@mvdb.net</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
    <developer>
      <id>polx</id>
      <name>Paul Libbrecht</name>
      <email>paul@activemath.org</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
    <developer>
      <id>rdonkin</id>
      <name>Robert Burrell Donkin</name>
      <email>rdonkin@apache.org</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
    <developer>
      <id>dfs</id>
      <name>Daniel F. Savarese</name>
      <email>dfs -> apache.org</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
    <developer>
      <id>brett</id>
      <name>Brett Porter</name>
      <email>brett@apache.org</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
    <developer>
      <id>hgilde</id>
      <name>Hans Gilde</name>
      <email>hgilde@apache.org</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
    <developer>
      <id>chtompki</id>
      <name>Rob Tompkins</name>
      <email>chtompki@apache.org</email>
      <url/>
      <organization/>
      <timezone/>
    </developer>
  </developers>
  <contributors>
    <contributor>
      <name>Erik Fransen</name>
      <email>erik167@xs4all.nl</email>
      <url/>
      <organization/>
      <roles>
        <role>Logo designer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Calvin Yu</name>
      <email/>
      <url/>
      <organization/>
      <timezone/>
    </contributor>
    <contributor>
      <name>Stephen Haberman</name>
      <email>stephenh@chase3000.com</email>
      <url/>
      <organization/>
      <timezone/>
    </contributor>
    <contributor>
      <name>Vinay Chandran</name>
      <email>sahilvinay@yahoo.com</email>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Theo Niemeijer</name>
      <email/>
      <url/>
      <organization/>
      <timezone/>
    </contributor>
    <contributor>
      <name>Joe Walnes</name>
      <email>joew@thoughtworks.com</email>
      <url/>
      <organization>ThoughtWorks, Inc.</organization>
      <roles>
        <role>Inventor of Mock Tags</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Otto von Wachter</name>
      <email>vonwao@yahoo.com</email>
      <url/>
      <organization/>
      <roles>
        <role>Author of the tutorials</role>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Robert Leftwich</name>
      <email>robert@leftwich.info</email>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Jim Birchfield</name>
      <email>jim.birchfield@genscape.com</email>
      <url/>
      <organization>Genscape, Inc.</organization>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Jason Horman</name>
      <email>jhorman@musicmatch.com</email>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Tim Anderson</name>
      <email>tima@intalio.com</email>
      <url/>
      <organization>Intalio, Inc.</organization>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Theo Niemeijer</name>
      <email>theo.niemeijer@getthere.nl</email>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>J. Matthew Pryor</name>
      <email>matthew_pryor@versata.com</email>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Knut Wannheden</name>
      <email/>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Kelvin Tan</name>
      <email/>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Todd Jonker</name>
      <email/>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Christiaan ten Klooster</name>
      <email/>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
    <contributor>
      <name>Pete Kazmier</name>
      <email>kaz@apache.org</email>
      <url/>
      <organization/>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone/>
    </contributor>
  </contributors>
  <scm>
    <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>
  </scm>
  <organization>
    <name>Apache Software Foundation</name>
    <url>http://jakarta.apache.org</url>
  </organization>
  <build>
    <sourceDirectory>
      ${project.basedir}/src/java
    </sourceDirectory>
    <testSourceDirectory>
      ${project.basedir}/src/test
    </testSourceDirectory>
    <resources>
      <resource>
        <targetPath>META-INF</targetPath>
        <directory>${project.basedir}</directory>
        <includes>
          <include>NOTICE.txt</include>
        </includes>
      </resource>
      <resource>
        <targetPath/>
        <directory>
          ${project.basedir}/src/java
        </directory>
        <includes>
          <include>**/*.properties</include>
        </includes>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <targetPath/>
        <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>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <includes>
            <include>**/Test*.java</include>
          </includes>
          <excludes>
            <exclude>**/TestCoreMemoryLeak.java</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.12</version>
        <configuration>
          <excludes>
            <exclude>dist/**</exclude>
            <exclude>docker/answer.txt</exclude>
            <exclude>jdk-1_5_0_22-linux-amd64.bin</exclude>
            <exclude>jelly-tags/ant/src/test/org/apache/commons/jelly/ant/sample.txt</exclude>
            <exclude>jelly-tags/xml/src/test/org/apache/commons/jelly/tags/xml/schematron/skeleton1-5.xsl</exclude>
            <exclude>jelly-tags/html/src/test/org/apache/commons/jelly/html/textScript.txt</exclude>
            <exclude>jelly-tags/jetty/src/test/org/apache/commons/jelly/jetty/docRoot/contextTest/contextTest.txt</exclude>
            <exclude>jelly-tags/jetty/src/test/org/apache/commons/jelly/jetty/docRoot/resourceHandlerTest/resourceHandlerTest.txt</exclude>
            <exclude>jelly-tags/jetty/src/test/org/apache/commons/jelly/jetty/docRoot/test1.txt</exclude>
            <exclude>src/test/META-INF/services/jelly.test-library</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>servletapi</groupId>
      <artifactId>servletapi</artifactId>
      <version>2.3</version>
    </dependency>
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
      <version>1.0</version>
    </dependency>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>commons-discovery</groupId>
      <artifactId>commons-discovery</artifactId>
      <version>20030211.213356</version>
    </dependency>
    <dependency>
      <groupId>forehead</groupId>
      <artifactId>forehead</artifactId>
      <version>1.0-beta-5</version>
    </dependency>
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.0.6</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
    </dependency>
    <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>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>2.1</version>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.0.3</version>
    </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>
    </dependency>
  </dependencies>
  <distributionManagement>
    <repository>
      <id>default</id>
      <name>Default Repository</name>
      <url>
        cvs.apache.org//www/jakarta.apache.org/builds/jakarta-commons/jelly/
      </url>
    </repository>
    <site>
      <id>default</id>
      <name>Default Site</name>
      <url>
        scp://cvs.apache.org//www/jakarta.apache.org/commons/jelly/
      </url>
    </site>
  </distributionManagement>
</project>