<?xml version="1.0" encoding="UTF-8"?>

<!--
  Copyright 2002-2004 The Apache Software Foundation

  Licensed 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>
  <extend>${basedir}/../tag-project.xml</extend>
  <id>commons-jelly-tags-util</id>
  <name>commons-jelly-tags-util</name>
  <currentVersion>1.1.1</currentVersion>
  <package>org.apache.commons.jelly.tags.util</package>
  <description>This is a set of Jelly utility tags.</description>
  <shortDescription>Commons Jelly Util Tag Library</shortDescription>
  <versions>
    <version>
      <id>1.0</id>
      <name>1.0</name>
      <tag>COMMONS_JELLY_UTIL-1_0</tag>
    </version>
    <version>
      <id>1.1</id>
      <name>1.1</name>
      <tag>COMMONS_JELLY-UTIL-1_1</tag>
    </version>
    <version>
      <id>1.1.1</id>
      <name>1.1.1</name>
      <tag>COMMONS_JELLY_UTIL-1_1_1</tag>
    </version>
  </versions>
  <dependencies>
    <!-- START for compilation -->
    <dependency>
      <id>commons-lang</id>
      <version>2.0</version>
    </dependency>
    <!-- END for compilation -->
    <!-- START for test -->

    <dependency>
      <groupId>commons-jelly</groupId>
      <artifactId>commons-jelly-tags-junit</artifactId>
      <version>1.0</version>
      <url>http://jakarta.apache.org/commons/jelly/tags/junit/</url>
    </dependency>
    <!-- END for test -->

  </dependencies>
</project>
