<?xml version="1.0" encoding="UTF-8"?>
<!--
 !
 ! Copyright 2006 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
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <parent>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-parent</artifactId>
    <version>1.1.0.1-SNAPSHOT</version>
    <relativePath>../parent/pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.axis2.maven2</groupId>
  <artifactId>axis2-maven-tools</artifactId>
  <name>Maven 2 tools for Axis 2</name>
  <description>
    This is a set of Maven 2 plugins for working with Axis 2.
  </description>
  <packaging>pom</packaging>

  <scm>
    <connection>http://svn.apache.org/repos/asf/webservices/axis2/branches/java/1_1/modules/tool</connection>
    <developerConnection>https://svn.apache.org/repos/asf/webservices/axis2/branches/java/1_1/modules/tool</developerConnection>
    <url>http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/tool</url>
  </scm>

  <modules>
    <module>axis2-aar-maven-plugin</module>
    <module>axis2-java2wsdl-maven-plugin</module>
    <module>axis2-wsdl2code-maven-plugin</module>
  </modules>

  <repositories>
     <repository>
        <id>maven-repo1</id>
        <name>maven official repo</name>
        <url>http://repo1.maven.org/maven/</url>
        <layout>legacy</layout>
     </repository>
     <repository>
        <snapshots>
           <enabled>true</enabled>
        </snapshots>
        <id>ws-zones</id>
        <name>ws.zones maven repository</name>
        <url>http://ws.zones.apache.org/repository/</url>
        <layout>legacy</layout>
     </repository>
  </repositories>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>2.0.4</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-project</artifactId>
        <version>2.0.4</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-artifact</artifactId>
        <version>2.0.4</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-archiver</artifactId>
        <version>2.2</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-utils</artifactId>
        <version>1.1</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.shared</groupId>
        <artifactId>maven-plugin-testing-harness</artifactId>
        <version>1.0-beta-1</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>
