<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>commons-jelly</groupId>
    <artifactId>commons-jelly-parent</artifactId>
    <version>1.1-SNAPSHOT</version>
  </parent>

  <artifactId>commons-jelly-tags</artifactId>
  <packaging>pom</packaging>
  <name>Apache Commons Jelly Tag Libraries Parent</name>
  <description>Parent pom for tag library projects.</description>

  <modules>
    <module>ant</module>
    <module>antlr</module>
    <module>avalon</module>
    <module>bean</module>
    <module>beanshell</module>
    <module>betwixt</module>
    <module>bsf</module>
    <module>define</module>
    <module>dynabean</module>
    <module>email</module>
    <module>fmt</module>
    <module>html</module>
    <module>http</module>
    <module>interaction</module>
    <module>jaxme</module>
    <module>jetty</module>
    <module>jface</module>
    <module>jms</module>
    <module>jmx</module>
    <module>jsl</module>
    <module>junit</module>
    <module>log</module>
    <module>memory</module>
    <module>ojb</module>
    <module>quartz</module>
    <module>regexp</module>
    <module>soap</module>
    <module>sql</module>
    <module>swing</module>
    <module>swt</module>
    <module>threads</module>
    <module>util</module>
    <module>validate</module>
    <module>velocity</module>
    <module>xml</module>
    <module>xmlunit</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>commons-jelly</groupId>
      <artifactId>commons-jelly</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>
