<?xml version="1.0" encoding="ISO-8859-1"?>
<project>

  <!-- the version of maven's project object model -->
  <pomVersion>3</pomVersion>
  
  <!-- a unique name for this project -->
  <id>kandula2</id>
  
  <!-- a short but descriptive name for the project -->
  <name>Apache Kandula2</name>
  
  <!-- The version of the project under development, e.g. 1.1, 1.2, 2.0-SNAPSHOT -->
  <currentVersion>0.1-SNAPSHOT</currentVersion>
  
  <!-- details about the organization that 'owns' the project -->
  <organization>
    <name>Apache Web Services</name>
    <url>http://ws.apache.org/</url>
    <logo>http://www.apache.org/images/asf-logo.gif</logo>
  </organization>
  
  <!-- the year the project started -->
  <inceptionYear>2005</inceptionYear>
  <package>org.apache.kandula</package>
  <logo/>
  <description>Kandula will provide an open-source implementation of WS-Coordination, 
  	WS-AtomicTransaction and WS-BusinessActivity based on Axis. The initial implementation will be in 
  	Java using Axis/Java. In addition to providing an implementation, a major focus of this project 
  	would be to ensure interoperability with other implementations of above specifications, 
  	particularly those by Microsoft (.NET) and IBM.
  </description>
  <!-- a short description of what the project does -->
  <shortDescription>WS-Coor, 
  	WS-AT and WS-BA implementation</shortDescription>

  <!-- the project home page -->
  <url>http://ws.apache.org/kandula/</url>
  <issueTrackingUrl>http://issues.apache.org/jira/browse/KAND</issueTrackingUrl>
  <siteAddress>ws.apache.org</siteAddress>
  <siteDirectory>/kandula/</siteDirectory>
  <distributionDirectory>/www/ws.apache.org/builds/</distributionDirectory>

  <!-- the version control repository and http url for online access
       the connection element has the form:
       scm:<system>:<system specific connection string> -->
  <!--repository>
    <connection>scm: svn:https://svn.apache.org/repos/asf/webservices/kandula/trunk/java/</connection>
    <url>http://svn.apache.org/repos/asf/webservices/kandula/trunk/java/</url>
  </repository-->

  <!-- any mailing lists for the project -->
    <mailingLists>
        <mailingList>
            <name>Kandula Developer List</name>
            <subscribe>kandula-dev-subscribe@ws.apache.org</subscribe>
            <unsubscribe>kandula-dev-unsubscribe@ws.apache.org</unsubscribe>
            <archive>http://nagoya.apache.org/eyebrowse/SummarizeList?listId=221</archive>
        </mailingList>
    </mailingLists>
  
  <!-- who the developers are for the project -->
  <developers>
		<developer>
			<name>Davanum Srinivas</name>
			<id>dims</id>
			<email>dims AT wso2.com</email>
			<organization>WSO2</organization>
		</developer>  
       <developer>
			<name>Sanjiva Weerawarana</name>
			<id>sanjiva</id>
			<email>sanjiva AT wso2.com</email>
			<organization>WSO2</organization>
		</developer>
        <developer>
            <name>Dasarath Weeratunge</name>
            <id>dasarath</id>
            <email>dasarath AT opensource.lk</email>
            <organization>Lanka Software Foundation (LSF), Sri Lanka.</organization>
        </developer>    
		<developer>
            <name>Thilina Gunarathne</name>
            <id>thilina</id>
            <email>thilina AT apache.org</email>
            <organization>Lanka Software Foundation (LSF) / University of Moratuwa, Sri Lanka.</organization>
        </developer>
  </developers>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
  
  <!-- build information for the project -->
  <build>
    <nagEmailAddress>kandula-dev@ws.apache.org</nagEmailAddress>
    <sourceDirectory>src</sourceDirectory>
  </build>

    <!-- ============ -->
    <!-- Dependencies -->
    <!-- ============ -->

    <dependencies>
    
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <url>http://ws.apache.org/axis/</url>
          <properties>
            <module>true</module>
          </properties>
        </dependency>     
        <dependency>
            <groupId>axis2</groupId>
            <artifactId>axis2-core</artifactId>
            <version>0.95-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>axis2</groupId>
            <artifactId>axis2-xml</artifactId>
            <version>0.95-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>axis2</groupId>
            <artifactId>axis2-wsdl</artifactId>
            <version>0.95-SNAPSHOT</version>
        </dependency>
        
        <dependency>
            <groupId>axis2</groupId>
            <artifactId>axis2-addressing</artifactId>
            <version>0.95-SNAPSHOT</version>
        </dependency>
        
        <dependency>
            <groupId>axis2</groupId>
            <artifactId>axis2-common</artifactId>
            <version>0.95-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.4</version>
            <properties>
                <module>true</module>
            </properties>
        </dependency>
 
       <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.0-rc3</version>
            <properties>
                <module>true</module>
            </properties>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.8</version>
            <properties>
                <module>true</module>
            </properties>
            <url>http://dist.codehaus.org/stax/jars/</url>
        </dependency>

          <dependency>
            <groupId>stax</groupId>
            <artifactId>stax</artifactId>
            <version>1.1.2-dev</version>
            <properties>
                <module>true</module>
            </properties>
        </dependency>
        <dependency>
            <groupId>stax</groupId>
            <artifactId>stax-api</artifactId>
            <version>1.0</version>
            <properties>
                <module>true</module>
            </properties>
        </dependency>
  		<dependency>
            <groupId>ws-commons</groupId>
            <artifactId>XmlSchema</artifactId>
            <version>SNAPSHOT</version>
        </dependency>
 	  <dependency>
            <groupId>axis</groupId>
            <artifactId>axis-wsdl4j</artifactId>
            <version>1.2</version>
            <properties>
                <module>true</module>
            </properties>
        </dependency>
	  <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.3</version>
            <properties>
                <module>true</module>
            </properties>
        </dependency>
        <dependency>
            <groupId>backport-util-concurrent</groupId>
            <artifactId>backport-util-concurrent</artifactId>
            <version>2.0_01_pd</version>
            <properties>
                <module>true</module>
            </properties>
        </dependency>
		<dependency>
            <groupId>annogen</groupId>
            <artifactId>annogen</artifactId>
            <version>0.1.0</version>
            <properties>
                <module>true</module>
            </properties>
        </dependency>
		 <dependency>
            <groupId>ws-commons</groupId>
            <artifactId>ws-policy</artifactId>
            <version>SNAPSHOT</version>
            <properties>
                <module>true</module>
            </properties>
        </dependency>
   
    </dependencies>

    <!-- ================================= -->
    <!-- build information for the project -->
    <!-- ================================= -->

    <build>
        <nagEmailAddress>kandula-dev@ws.apache.org</nagEmailAddress>
        <sourceDirectory>src</sourceDirectory>
        <unitTestSourceDirectory>test</unitTestSourceDirectory>

        <unitTest>    
        	 <includes>
                <include>**/CreateCoordinationContextTest.java</include>
            </includes>         
            

            <resources>
                <resource>
                    <directory>${basedir}/test-resources</directory>
                </resource>
                <resource>
                    <directory>conf</directory>
                    <includes>
                        <include>**/*.properties</include>
                    </includes>
                </resource>
                <resource>
                    <directory>src</directory>
                    <includes>
                        <include>**/*.conf</include>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
            </resources>
        </unitTest>
  <resources>
                
                <resource>
                    <directory>src</directory>
                    <includes>
                        <include>**/*.conf</include>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
            </resources>
    </build>

    <!-- ======= -->
    <!-- Reports -->
    <!-- ======= -->

    <reports>
     <report>maven-changes-plugin</report>
        <report>maven-jdepend-plugin</report>
        <report>maven-checkstyle-plugin</report>
        <report>maven-pmd-plugin</report>
        <report>maven-junit-report-plugin</report>
        <report>maven-license-plugin</report>
        <report>maven-jxr-plugin</report>

    </reports>
</project>

