<?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.0-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>
