<?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 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</groupId>
        <artifactId>apache</artifactId>
        <version>17</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2</artifactId>
    <version>1.6.5-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Apache Axis2 - Root</name>
    <inceptionYear>2004</inceptionYear>
    <url>http://axis.apache.org/axis2/java/core/</url>
    <issueManagement>
        <system>jira</system>
        <url>http://issues.apache.org/jira/browse/AXIS2</url>
    </issueManagement>
    <modules>
        <module>modules/resource-bundle</module> <!-- Must be first in the list! -->
        <module>apidocs</module>
        <module>modules/adb</module>
        <module>modules/adb-codegen</module>
        <module>modules/adb-tests</module>
        <module>modules/addressing</module>
        <module>modules/codegen</module>
        <module>modules/fastinfoset</module>
        <module>modules/integration</module>
        <module>modules/java2wsdl</module>
        <module>modules/jibx</module>
        <module>modules/json</module>
        <module>modules/kernel</module>
        <module>modules/mex</module>
        <module>modules/mtompolicy</module>
        <module>modules/mtompolicy-mar</module>
        <module>modules/ping</module>
        <module>modules/samples/version</module>
        <module>modules/soapmonitor/servlet</module>
        <module>modules/soapmonitor/module</module>
        <module>modules/spring</module>
        <module>modules/testutils</module>
        <module>modules/tool/axis2-aar-maven-plugin</module>
        <module>modules/tool/axis2-ant-plugin</module>
        <module>modules/tool/axis2-eclipse-codegen-plugin</module>
        <module>modules/tool/axis2-eclipse-service-plugin</module>
        <module>modules/tool/axis2-idea-plugin</module>
        <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
        <module>modules/tool/axis2-mar-maven-plugin</module>
        <module>modules/tool/axis2-repo-maven-plugin</module>
        <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
        <module>modules/tool/simple-server-maven-plugin</module>
        <module>modules/webapp</module>
        <module>modules/xmlbeans</module>
        <module>modules/scripting</module>
        <module>modules/jaxbri</module>
        <module>modules/metadata</module>
        <module>modules/saaj</module>
        <module>modules/jaxws</module>
        <module>modules/jaxws-mar</module>
        <module>modules/jaxws-integration</module>
        <module>modules/clustering</module>
        <module>modules/corba</module>
        <module>modules/osgi</module>
        <module>modules/osgi-tests</module>
        <module>modules/transport/local</module>
        <module>modules/transport/http</module>
        <module>modules/transport/base</module>
        <module>modules/transport/jms</module>
        <module>modules/transport/mail</module>
        <module>modules/transport/tcp</module>
        <module>modules/transport/testkit</module>
        <module>modules/transport/udp</module>
        <module>modules/transport/xmpp</module>
        <module>modules/distribution</module>
        <module>modules/samples</module>
    </modules>
    <profiles>
        <profile>
            <id>apache-release</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <!-- Skip the execution configured in org.apache:apache. We use our own configuration. -->
                                <id>attach-sources</id>
                                <phase>none</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <executions>
                            <execution>
                                <!-- Override the execution defined in org.apache:apache
                                     so that the source-release assembly is not built.
                                     We define our own source distribution in modules/distribution. -->
                                <id>source-release-assembly</id>
                                <configuration>
                                    <phase>package</phase>
                                    <goals>
                                        <goal>single</goal>
                                    </goals>
                                    <skipAssembly>true</skipAssembly>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    <mailingLists>
        <mailingList>
            <name>Axis2 Developer List</name>
            <subscribe>java-dev-subscribe@axis.apache.org</subscribe>
            <unsubscribe>java-dev-unsubscribe@axis.apache.org</unsubscribe>
            <post>java-dev@axis.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/axis-java-dev/</archive>
            <otherArchives>
                <otherArchive>http://markmail.org/search/list:org.apache.ws.axis-dev</otherArchive>
            </otherArchives>
        </mailingList>
        <mailingList>
            <name>Axis2 User List</name>
            <subscribe>java-user-subscribe@axis.apache.org</subscribe>
            <unsubscribe>java-user-unsubscribe@axis.apache.org</unsubscribe>
            <post>java-user@axis.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/axis-java-user/</archive>
            <otherArchives>
                <otherArchive>http://markmail.org/search/list:org.apache.ws.axis-user</otherArchive>
            </otherArchives>
        </mailingList>
    </mailingLists>
    <developers>
        <developer>
            <name>Saminda Abeyruwan</name>
            <id>saminda</id>
            <email>saminda AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Afkham Azeez</name>
            <id>azeez</id>
            <email>azeez AT wso2.com</email>
            <organization>WSO2</organization>
            <url>http://www.apache.org/~azeez</url>
        </developer>
        <developer>
            <name>Jeff Barrett</name>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Eran Chinthaka</name>
            <id>chinthaka</id>
            <email>chinthaka AT wso2.com</email>
            <organization>WSO2</organization>
            <url>http://www.apache.org/~chinthaka</url>
        </developer>
        <developer>
            <name>Glen Daniels</name>
            <id>gdaniels</id>
            <email>gdaniels AT apache.org</email>
            <organization>Sonic Software</organization>
        </developer>
        <developer>
            <name>Brian DePradine</name>
            <id>pradine</id>
            <email>pradine AT uk.ibm.com</email>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Jaliya Ekanayake</name>
            <id>jaliya</id>
            <email>jaliya AT opensource.lk</email>
            <organization>Indiana University, USA</organization>
            <url>http://www.apache.org/~jaliya</url>
        </developer>
        <developer>
            <name>Ruchith Fernando</name>
            <id>ruchithf</id>
            <email>ruchith AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Nicholas Gallardo</name>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Thilina Gunarathne</name>
            <id>thilina</id>
            <email>thilina AT opensource.lk</email>
            <organization>Lanka Software Foundation</organization>
        </developer>
        <developer>
            <name>Chathura Herath</name>
            <id>chathura</id>
            <email>chathura AT opensource.lk</email>
            <organization>Indiana University, USA</organization>
            <url>http://www.apache.org/~chathura</url>
        </developer>
        <developer>
            <name>David Illsley</name>
            <id>davidillsley</id>
            <organization>IBM</organization>
            <url>http://www.illsley.org</url>
        </developer>
        <developer>
            <name>Deepal Jayasinghe</name>
            <id>deepal</id>
            <email>deepal AT gatech.org</email>
            <organization>Georgia Institute of Technology, USA</organization>
            <url>http://www.apache.org/~deepal</url>
        </developer>
        <developer>
            <name>Robert Lazarski</name>
            <id>robertlazarski</id>
            <email>robertlazarski AT gmail.com</email>
            <organization>Brazil Outsource</organization>
        </developer>
        <developer>
            <name>Senaka Fernando</name>
            <id>senaka</id>
            <email>senaka AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Steve Loughran</name>
            <id>stevel</id>
            <email>stevel AT apache.org</email>
            <organization>HP labs</organization>
        </developer>
        <developer>
            <name>Bill Nagy</name>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Chatra Nakkawita</name>
            <id>chatra</id>
            <email>chatra AT WSO2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Sumedha Rubasinghe</name>
            <id>sumedha</id>
            <email>sumedha AT WSO2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Charitha Kamkanamge</name>
            <id>charitha</id>
            <email>charitha AT WSO2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Srinath Perera</name>
            <id>hemapani</id>
            <email>hemapani AT apache.org</email>
            <organization>Indiana University, USA</organization>
            <url>http://www.apache.org/~hemapani</url>
        </developer>
        <developer>
            <name>Ajith Ranabahu</name>
            <id>ajith</id>
            <email>ajith AT wso2.com</email>
            <organization>WSO2</organization>
            <url>http://www.apache.org/~ajith</url>
        </developer>
        <developer>
            <name>Venkat Reddy</name>
            <id>venkat</id>
            <email>vreddyp AT gmail.com</email>
            <organization>Computer Associates</organization>
        </developer>
        <developer>
            <name>Michael Rheinheimer</name>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Ann Robinson</name>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Sanka Samaranayake</name>
            <id>sanka</id>
            <email>sanka AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Rich Scheuerle</name>
            <id>scheu</id>
            <email>scheu AT us.ibm.com</email>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Ashutosh Shahi</name>
            <id>ashu</id>
            <email>Ashutosh.Shahi AT ca.com</email>
            <organization>Computer Associates</organization>
        </developer>
        <developer>
            <name>Aleksander Slominski</name>
            <id>alek</id>
            <email>aslom AT cs.indiana.edu</email>
            <organization>Indiana University Extreme! Computing Lab</organization>
        </developer>
        <developer>
            <name>Dennis Sosnoski</name>
            <id>dsosnoski</id>
            <email>dms AT sosnoski.com</email>
            <organization>Sosnoski Software</organization>
        </developer>
        <developer>
            <name>Davanum Srinivas</name>
            <id>dims</id>
            <email>davanum AT gmail.com</email>
        </developer>
        <developer>
            <name>Jayachandra Sekhara Rao Sunkara</name>
            <id>jaya</id>
            <email>jayachandra AT gmail.com</email>
            <organization>Computer Associates</organization>
        </developer>
        <developer>
            <name>Nandana Mihindukulasooriya</name>
            <id>nandana</id>
            <email>nandana AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Nikhil Thaker</name>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Chamil Thanthrimudalige</name>
            <id>chamil</id>
            <email>chamil AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Dasarath Weerathunga</name>
            <id>dasarath</id>
            <email>dasarath AT opensource.lk</email>
            <organization>Purdue University, USA</organization>
        </developer>
        <developer>
            <name>Eranga Jayasundera</name>
            <id>eranga</id>
            <email>eranga AT apache.org</email>
        </developer>
        <developer>
            <name>Sanjiva Weerawarana</name>
            <id>sanjiva</id>
            <email>sanjiva AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Keith Chapman</name>
            <id>keithc</id>
            <email>keith AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Andreas Veithen</name>
            <id>veithen</id>
            <email>veithen AT apache.org</email>
            <url>http://www.linkedin.com/in/aveithen</url>
        </developer>
        <developer>
            <name>Ruwan Linton</name>
            <id>ruwan</id>
            <email>ruwan AT apache.org</email>
            <url>http://www.linkedin.com/in/ruwanlinton</url>
        </developer>
        <developer>
            <name>Sagara Gunathunga</name>
            <id>sagara</id>
            <email>sagara AT apache.org</email>
            <organization>WSO2</organization>
        </developer>
    </developers>
    <contributors>
        <contributor>
            <name>Gayan Asanka</name>
            <email>gayan AT opensource.lk</email>
            <organization>Lanka Software Foundation</organization>
        </contributor>
        <contributor>
            <name>Dharshana Dias</name>
            <organization>Lanka Software Foundation / University of Moratuwa</organization>
        </contributor>
        <contributor>
            <name>Nadana Gunarathna</name>
            <email>nadana AT opensource.lk</email>
            <organization>Lanka Software Foundation</organization>
        </contributor>
        <contributor>
            <name>Thilini Gunawardhana</name>
            <email>thilini AT WSO2.com</email>
            <organization>WSO2</organization>
        </contributor>
        <contributor>
            <name>Anushka Kumara</name>
            <email>anushkakumar AT gmail.com</email>
            <organization>Lanka Software Foundation / University of Moratuwa</organization>
        </contributor>
        <contributor>
            <name>Farhaan Mohideen</name>
            <email>fmohideen AT valista.com</email>
            <organization>Lanka Software Foundation</organization>
        </contributor>
        <contributor>
            <name>Chinthaka Thilakarathne</name>
            <organization>Lanka Software Foundation / University of Moratuwa</organization>
        </contributor>
        <contributor>
            <name>Shivantha Huruggamuwa</name>
            <email>shivanthah AT gmail.com</email>
            <organization>University Of Peradeniya , Sri Lanka</organization>
        </contributor>
        <contributor>
            <name>Dobri Kitipov</name>
            <email>kdobrik AT gmail.com</email>
            <organization>Software AG</organization>
        </contributor>
    </contributors>
    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/branches/1_6</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/branches/1_6</developerConnection>
        <url>http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6</url>
    </scm>
    <distributionManagement>
        <site>
            <id>site</id>
            <url>scm:svn:https://svn.apache.org/repos/asf/axis/site/axis2/java/core-staging</url>
        </site>
    </distributionManagement>
    <properties>
        <neethi.version>3.0.2</neethi.version>
        <woden.version>1.0M9</woden.version>
        <axiom.version>1.2.17</axiom.version>
        <xmlschema.version>1.4.7</xmlschema.version>
        <ant.version>1.7.0</ant.version>
        <antlr.version>2.7.7</antlr.version>
        <bsf.version>2.4.0</bsf.version>
        <commons.codec.version>1.3</commons.codec.version>
        <commons.fileupload.version>1.3.1</commons.fileupload.version>
        <commons.httpclient.version>3.1</commons.httpclient.version>
        <commons.io.version>2.1</commons.io.version>
        <commons.logging.version>1.1.1</commons.logging.version>
        <fi.version>1.2.7</fi.version>
        <geronimo.spec.activation.version>1.0.2</geronimo.spec.activation.version>
        <geronimo.spec.annotation.version>1.1</geronimo.spec.annotation.version>
        <geronimo.spec.javamail.version>1.6</geronimo.spec.javamail.version>
        <geronimo.spec.stax.version>1.0.1</geronimo.spec.stax.version>
        <geronimo.spec.metadata.version>1.1.2</geronimo.spec.metadata.version>
        <geronimo.spec.saaj.version>1.0.1</geronimo.spec.saaj.version>
        <geronimo.spec.jaxws.version>1.0</geronimo.spec.jaxws.version>
        <httpcore.version>4.0</httpcore.version>
        <intellij.version>5.0</intellij.version>
        <jalopy.version>1.5rc3</jalopy.version>
        <jaxb.api.version>2.1</jaxb.api.version>
        <jaxbri.version>2.1.7</jaxbri.version>
        <jettison.version>1.3</jettison.version>
        <jibx.version>1.2</jibx.version>
        <junit.version-jdk1.4>3.8.2</junit.version-jdk1.4>
        <junit.version>4.4</junit.version>
        <log4j.version>1.2.15</log4j.version>
        <maven.archiver.version>2.2</maven.archiver.version>
        <maven.artifact.version>2.0.8</maven.artifact.version>
        <maven.plugin.testing.version>1.1</maven.plugin.testing.version>
        <maven.version>2.0.7</maven.version>
        <maven.plugin.descriptor.version>2.0.7</maven.plugin.descriptor.version>
        <plexus.classworlds.version>2.4</plexus.classworlds.version>
        <plexus.utils.version>1.4.9</plexus.utils.version>
        <rhino.version>1.6R7</rhino.version>
        <servlet.api.version>2.3</servlet.api.version>
        <spring.version>2.5.1</spring.version>
        <tomcat.version>6.0.16</tomcat.version>
        <wsdl4j.version>1.6.2</wsdl4j.version>
        <xalan.version>2.7.0</xalan.version>
        <xmlbeans.version>2.3.0</xmlbeans.version>
        <xml_resolver.version>1.2</xml_resolver.version>
        <xmlunit.version>1.3</xmlunit.version>
        <commons.lang.version>2.3</commons.lang.version>
        <javax.mail.version>1.4</javax.mail.version>
        <commons.cli.version>1.2</commons.cli.version>
        <!-- The build failing if tests are skipped is very annoying -->
        <failIfNoTests>false</failIfNoTests>
        <m2Repository>'${settings.localRepository}'</m2Repository>
        <geronimo-spec.jta.version>1.1</geronimo-spec.jta.version>
        <jsr311.api.version>1.1.1</jsr311.api.version>

        <!-- This variable is used in some Xdocs and is substituted using Velocity. Note that
             we can't use the project.version variable directly because of the dot. See
             http://maven.apache.org/plugins/maven-site-plugin/examples/creating-content.html -->
        <axis2_version>${project.version}</axis2_version>
    </properties>
    <pluginRepositories>
        <pluginRepository>
            <id>apache.snapshots</id>
            <name>Apache Snapshot Repository</name>
            <url>http://repository.apache.org/snapshots</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.sun.xml.fastinfoset</groupId>
                <artifactId>FastInfoset</artifactId>
                <version>${fi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tribes</artifactId>
                <version>${tomcat.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>juli</artifactId>
                <version>${tomcat.version}</version>
            </dependency>
            <dependency>
                <groupId>xml-resolver</groupId>
                <artifactId>xml-resolver</artifactId>
                <version>${xml_resolver.version}</version>
            </dependency>
            <dependency>
                <groupId>xalan</groupId>
                <artifactId>xalan</artifactId>
                <version>${xalan.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>xml-apis</groupId>
                        <artifactId>xml-apis</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${jaxbri.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-xjc</artifactId>
                <version>${jaxbri.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb.api.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.xml.stream</groupId>
                        <artifactId>stax-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>${servlet.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
                <version>${jettison.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>stax</groupId>
                        <artifactId>stax-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jibx</groupId>
                <artifactId>jibx-bind</artifactId>
                <version>${jibx.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jibx</groupId>
                <artifactId>jibx-run</artifactId>
                <version>${jibx.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.codehaus.woodstox</groupId>
                        <artifactId>wstx-asl</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant-launcher</artifactId>
                <version>${ant.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ws.commons.axiom</groupId>
                <artifactId>axiom-api</artifactId>
                <version>${axiom.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>xml-apis</groupId>
                        <artifactId>xml-apis</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>xerces</groupId>
                        <artifactId>xercesImpl</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.ws.commons.axiom</groupId>
                <artifactId>axiom-compat</artifactId>
                <version>${axiom.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ws.commons.axiom</groupId>
                <artifactId>axiom-impl</artifactId>
                <version>${axiom.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ws.commons.axiom</groupId>
                <artifactId>axiom-dom</artifactId>
                <version>${axiom.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ws.commons.axiom</groupId>
                <artifactId>testutils</artifactId>
                <version>${axiom.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ws.commons.axiom</groupId>
                <artifactId>xml-truth</artifactId>
                <version>${axiom.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ws.commons.schema</groupId>
                <artifactId>XmlSchema</artifactId>
                <version>${xmlschema.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.neethi</groupId>
                <artifactId>neethi</artifactId>
                <version>${neethi.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.codehaus.woodstox</groupId>
                        <artifactId>woodstox-core-asl</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant</artifactId>
                <version>${ant.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>${commons.logging.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons.codec.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-stax-api_1.0_spec</artifactId>
                <version>${geronimo.spec.stax.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-activation_1.1_spec</artifactId>
                <version>${geronimo.spec.activation.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-javamail_1.4_spec</artifactId>
                <version>${geronimo.spec.javamail.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-annotation_1.0_spec</artifactId>
                <version>${geronimo.spec.annotation.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
                <version>${geronimo.spec.metadata.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-saaj_1.3_spec</artifactId>
                <version>${geronimo.spec.saaj.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jaxws_2.2_spec</artifactId>
                <version>${geronimo.spec.jaxws.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>${commons.httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons.io.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${httpcore.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>${commons.fileupload.version}</version>
            </dependency>
            <dependency>
                <groupId>wsdl4j</groupId>
                <artifactId>wsdl4j</artifactId>
                <version>${wsdl4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.woden</groupId>
                <artifactId>woden-api</artifactId>
                <version>${woden.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.woden</groupId>
                <artifactId>woden-impl-dom</artifactId>
                <version>${woden.version}</version>
            </dependency>
                <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
                <version>${jsr311.api.version}</version>
            </dependency>
            <dependency>
                <groupId>xmlunit</groupId>
                <artifactId>xmlunit</artifactId>
                <version>${xmlunit.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.xmlbeans</groupId>
                <artifactId>xmlbeans</artifactId>
                <version>${xmlbeans.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>stax</groupId>
                        <artifactId>stax-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-api</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-project</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-artifact</artifactId>
                <version>${maven.artifact.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-archiver</artifactId>
                <version>${maven.archiver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-descriptor</artifactId>
                <version>${maven.plugin.descriptor.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-utils</artifactId>
                <version>${plexus.utils.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-classworlds</artifactId>
                <version>${plexus.classworlds.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.shared</groupId>
                <artifactId>maven-plugin-testing-harness</artifactId>
                <scope>test</scope>
                <version>${maven.plugin.testing.version}</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.mail</groupId>
                        <artifactId>mail</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.jms</groupId>
                        <artifactId>jms</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jdmk</groupId>
                        <artifactId>jmxtools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jmx</groupId>
                        <artifactId>jmxri</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>oro</groupId>
                        <artifactId>oro</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.core</groupId>
                <artifactId>jobs</artifactId>
                <version>3.2.0-v20060603</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.core</groupId>
                <artifactId>resources</artifactId>
                <version>3.2.1-R32x_v20060914</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.core</groupId>
                <artifactId>runtime</artifactId>
                <version>3.2.0-v20060603</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.equinox</groupId>
                <artifactId>common</artifactId>
                <version>3.2.0-v20060603</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse</groupId>
                <artifactId>jface</artifactId>
                <version>3.2.1-M20060908-1000</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse</groupId>
                <artifactId>osgi</artifactId>
                <version>3.2.1-R32x_v20060919</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse</groupId>
                <artifactId>swt</artifactId>
                <version>3.2.1-v3235e</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.swt.win32.win32</groupId>
                <artifactId>x86</artifactId>
                <version>3.2.1-v3235</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.ui</groupId>
                <artifactId>ide</artifactId>
                <version>3.2.1-M20060915-1030</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.core</groupId>
                <artifactId>expressions</artifactId>
                <version>3.2.1-r321_v20060721</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse</groupId>
                <artifactId>ui</artifactId>
                <version>3.2.1-M20060913-0800</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.ui</groupId>
                <artifactId>workbench</artifactId>
                <version>3.2.1-M20060906-0800</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.update</groupId>
                <artifactId>core</artifactId>
                <version>3.2.1-v20092006</version>
            </dependency>
            <dependency>
                <groupId>com.intellij</groupId>
                <artifactId>openapi</artifactId>
                <version>${intellij.version}</version>
            </dependency>
            <dependency>
                <groupId>com.intellij</groupId>
                <artifactId>extensions</artifactId>
                <version>${intellij.version}</version>
            </dependency>
            <dependency>
                <groupId>rhino</groupId>
                <artifactId>js</artifactId>
                <version>${rhino.version}</version>
            </dependency>
            <dependency>
                <groupId>bsf</groupId>
                <artifactId>bsf</artifactId>
                <version>${bsf.version}</version>
            </dependency>
            <dependency>
                <groupId>jalopy</groupId>
                <artifactId>jalopy</artifactId>
                <version>${jalopy.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${commons.lang.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jta_1.1_spec</artifactId>
                <version>${geronimo-spec.jta.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${commons.cli.version}</version>
            </dependency>
            
            <!-- Jetty is used by some of the unit tests -->
            <dependency>
                <groupId>jetty</groupId>
                <artifactId>jetty</artifactId>
                <version>5.1.10</version>
            </dependency>

            <!-- AspectJ is used in the unit tests of several transports -->            
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>1.7.4</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>1.7.4</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.3</version>
                    <configuration>
                        <detectOfflineLinks>false</detectOfflineLinks>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-release-plugin</artifactId>
                    <configuration>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <!-- "clean verify" fails because for OSGi bundles, there
                             is a mismatch between the type of the dependency (jar)
                             and the actual packaging (bundle) and Maven resolves
                             the dependency from the local repository instead of the
                             reactor. -->
                        <preparationGoals>clean install</preparationGoals>
                        <tagNameFormat>v@{project.version}</tagNameFormat>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.4</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.gmavenplus</groupId>
                    <artifactId>gmavenplus-plugin</artifactId>
                    <version>1.5</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.codehaus.groovy</groupId>
                            <artifactId>groovy-all</artifactId>
                            <version>2.4.4</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.6</version>
                </plugin>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-ear-plugin</artifactId>
                    <version>2.3.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-ejb-plugin</artifactId>
                    <version>2.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-plugin-plugin</artifactId>
                    <version>2.6</version>
                </plugin>
                <plugin>
                    <artifactId>maven-rar-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.4.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.13</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.6</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>1.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>2.1.0</version>
                </plugin>
                <plugin>
                    <groupId>net.ju-n.maven.plugins</groupId>
                    <artifactId>checksum-maven-plugin</artifactId>
                    <version>1.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>2.8.1</version>
                </plugin>
                
                <!-- Use 1.5.2 versions of the aar and mar plugins in order to avoid
                     the chicken and egg problem. -->
                <plugin>
                    <groupId>org.apache.axis2</groupId>
                    <artifactId>axis2-aar-maven-plugin</artifactId>
                    <version>1.5.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.axis2</groupId>
                    <artifactId>axis2-mar-maven-plugin</artifactId>
                    <version>1.5.2</version>
                </plugin>
                
                <!-- No chicken and egg problem here because the plugin doesn't expose
                     any extension. We can always use the version from the current build. -->
                <plugin>
                    <groupId>org.apache.axis2</groupId>
                    <artifactId>axis2-repo-maven-plugin</artifactId>
                    <version>${project.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.1</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireMavenVersion>
                                    <version>3.0.0</version>
                                </requireMavenVersion>
                                <requireJavaVersion>
                                    <!-- We require Java 7 for the build, but we enforce Java 5 compatibility using Animal Sniffer -->
                                    <version>1.7.0</version>
                                </requireJavaVersion>
                                <requireNoRepositories>
                                    <message>The POM must not include repository definitions since non Apache repositories threaten the build stability.</message>
                                    <banRepositories>true</banRepositories>
                                    <banPluginRepositories>true</banPluginRepositories>
                                    <!-- We still need to allow the Apache snapshot repository -->
                                    <allowSnapshotRepositories>true</allowSnapshotRepositories>
                                    <allowSnapshotPluginRepositories>true</allowSnapshotPluginRepositories>
                                </requireNoRepositories>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <inherited>true</inherited>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>animal-sniffer-maven-plugin</artifactId>
                <version>1.14</version>
                <executions>
                    <execution>
                        <id>check</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <signature>
                        <groupId>org.codehaus.mojo.signature</groupId>
                        <artifactId>java15</artifactId>
                        <version>1.0</version>
                    </signature>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                </configuration>
            </plugin>
            <plugin>
                <!-- Always build source JARs -->
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>source-jars</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <attach>true</attach>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.gmavenplus</groupId>
                <artifactId>gmavenplus-plugin</artifactId>
                <executions>
                    <execution>
                        <id>prepare-site</id>
                        <phase>pre-site</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <scripts>
                                <script>
                                    import java.util.Date
                                    import java.text.MessageFormat
                                    project.properties['release_date'] = MessageFormat.format("{0,date,MMMMM dd, yyyy}", new Date())
                                    project.properties['release_version'] = project.version.replaceAll("-SNAPSHOT", "")
                                    project.properties['skipSiteSite'] = String.valueOf(!new File(project.basedir, 'src/site/site.xml').exists())
                                </script>
                            </scripts>
                        </configuration>
                    </execution>
                    <execution>
                        <id>check-site</id>
                        <phase>post-site</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <scripts>
                                <script>
                                    project.properties['skipSiteStage'] = String.valueOf(!new File(project.reporting.outputDirectory).exists())
                                </script>
                            </scripts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-site-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-site</id>
                        <phase>site</phase>
                        <goals>
                            <goal>site</goal>
                        </goals>
                        <configuration>
                            <skip>${skipSiteSite}</skip>
                        </configuration>
                    </execution>
                    <execution>
                        <id>site-stage</id>
                        <phase>site-deploy</phase>
                        <goals>
                            <goal>stage</goal>
                        </goals>
                        <configuration>
                            <skip>${skipSiteStage}</skip>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <!-- Don't deploy; we use maven-scm-publish-plugin -->
                    <skipDeploy>true</skipDeploy>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-scm-publish-plugin</artifactId>
                <version>1.1</version>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <inherited>false</inherited>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>issue-tracking</report>
                            <report>mailing-list</report>
                            <report>project-team</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>
</project>
