<?xml version="1.0"?>
<!--
/*
* Copyright 2001-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>
  <pomVersion>3</pomVersion>

  <!-- a unique name for this project -->
  <name>Apache Axis2/C</name>
  <id>axis2c</id>
  <groupId>axis2c</groupId>
  <currentVersion>${axis2_version}</currentVersion>

  <!-- details about the organization that 'owns' the project -->
  <organization>
    <name>Apache Software Foundation</name>
    <url>http://www.apache.org/</url>
    <logo>http://www.apache.org/images/asf-logo.gif</logo>
  </organization>

  <inceptionYear>2005</inceptionYear>
  <logo>http://ws.apache.org/axis2/images/axis.jpg</logo>
  <description> Axis2 is an effort to re-design and totally re-implement both Axis/Java and (eventually) Axis/C++ on a new architecture. Evolving from the now standard "handler chain" model which Axis1 pioneered, Axis2 is developing a more flexible pipeline architecture which can yet be managed and packaged in a more organized manner. This new design acknowledges the maturing of the Web services space in terms of new protocols such as WS-ReliableMessaging, WS-Security and WS-Addressing that are built on top of the base SOAP system. At the time Axis1 was designed, while it was fully expected that other protocols such as WS-ReliableMessaging would be built on top of it, there was not a proper extension architecture defined to enable clean composition of such layers. Thus, one of the key motivations for Axis2 is to provide a clean and simple environment for like Apache Sandesha and Apache WSS4J to layer on top of the base SOAP system. Another driving force for Axis2 as well as the move away from RPC oriented Web services towards more document-oriented, message style asynchronous service interactions. The Axis2 project is centered on a new representation for SOAP messages called AXIOM (AXIs Object Model). AXIOM consists of two parts: a complete XML Infoset representation and a SOAP Infoset representation on top of that. The XML Infoset representation provides a JDOM-like simple API but is built on a deferred model via a StAX-based (Streaming API for XML) pull parsing API. A key feature of AXIOM is that it allows one to stop building the XML tree and just access the pull stream directly; thus enabling both maximum flexibility and maximum performance. This approach allows us to support multiple levels of abstraction for consuming and offering Web services: using plain AXIOM, using generated code and statically data-bound data types and so on. At the time of Axis1's design, RPC-style, synchronous, request-response interactions were the order of the day for Web services. Today service interactions are much more message
  -oriented and exploit many different message exchange patterns. The Axis2 engine architecture is careful to not build in any assumptions of request-response patterns to ensure that it can be used easily to support arbitrary message exchange patterns.</description>
  <shortDescription>Axis2 C</shortDescription>
  <!-- the project home page -->
  <url>http://ws.apache.org/axis2/c</url>
  <issueTrackingUrl>http://issues.apache.org/jira/browse/AXIS2C</issueTrackingUrl>
  <siteAddress>ws.apache.org/axis2/c</siteAddress>
  <siteDirectory>/www/ws.apache.org/axis2/c</siteDirectory>
  <distributionDirectory>/www/ws.apache.org/builds/c</distributionDirectory>
  <repository>
       <connection>scm|svn|http://svn.apache.org/repos/asf/webservices/axis2/trunk/c</connection>
       <developerConnection>scm|svn|https://svn.apache.org/repos/asf/webservices/axis2/trunk/c</developerConnection>
       <url>https://svn.apache.org/repos/asf/webservices/axis2/trunk/c/</url>
       </repository>
  <mailingLists>
    <mailingList>
      <name>Axis C Developer List</name>
      <subscribe>axis-c-dev-subscribe@ws.apache.org?subject=subscribe</subscribe>
      <unsubscribe>axis-c-dev-unsubscribe@ws.apache.org?subject=unsubscribe</unsubscribe>
      <archive>http://marc.theaimsgroup.com/?l=axis-c-dev&amp;r=1&amp;w=2</archive>
	  <otherArchives>
        <otherArchive>http://markmail.org/search/list:org.apache.ws.axis-c-dev</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Axis C User List</name>
      <subscribe>axis-c-user-subscribe@ws.apache.org?subject=subscribe</subscribe>
      <unsubscribe>axis-c-user-unsubscribe@ws.apache.org?subject=unsubscribe</unsubscribe>
      <archive>http://marc.theaimsgroup.com/?l=axis-c-user&amp;r=1&amp;w=2</archive>
	  <otherArchives>
        <otherArchive>http://markmail.org/search/list:org.apache.ws.axis-c-user</otherArchive>
      </otherArchives>
    </mailingList>
	 <mailingList>
            <name>CVS Commit Message List</name>
            <subscribe>axis-cvs-subscribe@ws.apache.org</subscribe>
            <unsubscribe>axis-cvs-unsubscribe@ws.apache.org</unsubscribe>
            <post>axis-cvs@ws.apache.org</post>
            <archive>http://markmail.org/search/list:org.apache.ws.axis-cvs</archive>
        </mailingList>
  </mailingLists>
  
  <!-- ========== -->
  <!-- Developers -->
  <!-- ========== -->
  <developers>
    <developer>
      <name>Samisa Abeysinghe</name>
      <id>samisa</id>
      <email>samisa AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Dushshantha Chandradasa</name>
      <id>dushshantha</id>
      <email>dushshantha AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Chris Darroch</name>
      <id>chrisd</id>
      <email>chrisd AT pearsoncmg DOT com</email>
      <organization>Pearson Education Core Technology Group</organization>
    </developer>
    <developer>
      <name>Senaka Fernando</name>
      <id>senaka</id>
      <email>senaka AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>    
    <developer>
      <name>Paul Fremantle</name>
      <id>pzf</id>
      <email>paul AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Dimuthu Gamage</name>
      <id>dimuthu</id>
      <email>dimuthuc AT gmail DOT com</email>
      <organization>Univerisity of Moratuwa</organization>
    </developer>
    <developer>
      <name>Sahan Gamage</name>
      <id>sahan</id>
      <email>sahans AT gmail DOT com</email>
      <organization>Purdue University</organization>
    </developer>
    <developer>
      <name>Lahiru Gunathilake</name>
      <id>lahiru</id>
      <email>glahiru@gmail.com</email>
      <organization>University of Moratuwa</organization>
    </developer>
    <developer>
      <name>Nandika Jayawardana</name>
      <id>nandika</id>
      <email>nandika AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Supun Kamburugamuva</name>
      <id>supun</id>
      <email>supun06 AT gmail DOT com</email>
      <organization>Univerisity of Moratuwa</organization>
    </developer>
    <developer>
      <name>Kaushalye Kapuruge</name>
      <id>kaushalye</id>
      <email>kaushalye AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Damitha Kumarage</name>
      <id>damitha</id>
      <email>damitha AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Bill Mitchell</name>
      <id>bmitchell</id>
      <email>wtmitchell3 AT acm DOT org </email>
      <organization></organization>
    </developer>    
    <developer>
      <name>Dumindu Pallewela</name>
      <id>dumindu</id>
      <email>dumindu AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Milinda Pathirage</name>
      <id>milinda</id>
      <email>milinda DOT pathirage AT gmail DOT com</email>
      <organization>Univerisity of Moratuwa</organization>
    </developer>
    <developer>
      <name>Manjula Peiris</name>
      <id>manjula</id>
      <email>manjula AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Dinesh Premalal</name>
      <id>dinesh</id>
      <email>dinesh AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Sanjaya Rathnaweera</name>
      <id>pini</id>
      <email>sanjaya AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Davanum Srinivas</name>
      <id>dims</id>
      <email>davanum AT gmail DOT com</email>
      <organization> </organization>
    </developer>
    <developer>
      <name>Sanjiva Weerawarana</name>
      <id>sanjiva</id>
      <email>sanjiva AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Nabeel Yoosuf</name>
      <id>nabeel</id>
      <email>nabeel DOT yoosuf AT gmail DOT com</email>
      <organization>Purdue University</organization>
    </developer>    
    <developer>
      <name>Selvaratnam Uthaiyashankar</name>
      <id>shankar</id>
      <email>shankar AT wso2 DOT com</email>
      <organization>WSO2</organization>
    </developer>    
  </developers>
  <contributors>
    <contributor>
      <name>James Clark</name>
      <email>jjc AT public DOT jclark DOT com</email>
      <roles>
	<role>Technical Adviser on Building a Portable/Re-usable C library</role>
      </roles>
    </contributor>
    <contributor>
      <name>Buddhika Semashinghe</name>
      <email>buddhika AT wso2 DOT com</email>
      <roles>
	<role>Helps to improve overall quality of the code base</role>
      </roles>
    </contributor>
    <contributor>
      <name>Manoj Pushpakumara</name>
      <email>manaj AT wso2 DOT com</email>
      <roles>
	<role>Improvements to the Unit Test cases</role>
      </roles>
    </contributor>
    <contributor>
      <name>Spencer Davis</name>
      <email>spencerdavis91 AT gmail DOT com</email>
      <roles>
	<role>Composing Axis2/C FAQ Documentation</role>
      </roles>
    </contributor>
    <contributor>
      <name>Alastair FETTES</name>
      <email>afettes AT mdacorporation DOT com</email>
      <roles>
	<role>Suggestion to improve API and several inputs through JIRA</role>
      </roles>
    </contributor>
    <contributor>
      <name>Rajika Kumarasiri</name>
      <email>rajikacc AT gmail DOT com</email>
      <roles>
        <role>Bug Fixes</role>
      </roles>
    </contributor>
    <contributor>
      <name>Danushka Menikkumbura</name>
      <email>danushka AT wso2 DOT com</email>
      <roles>
        <role>AMQP Transport implementation</role>
      </roles>
    </contributor>
    <contributor>
      <name>Frederic Heem</name>
      <email>frederic DOT heem AT telsey DOT it</email>
      <roles>
        <role>Suggestions for improvements through Jiras and Bug fixes</role>
      </roles>
    </contributor>
    <contributor>
      <name>Diluka Moratuwage</name>
      <email>diluka DOT wso2 DOT com</email>
      <roles>
        <role>Suggestions for improvements through Jiras and Bug fixes</role>
      </roles>
    </contributor>
  </contributors>

  <!-- ################################################################ -->
  <!--        Project dependency section                                -->
  <!-- ################################################################ -->

  <dependencies/>


  <!-- ################################################################ -->
  <!--        Project build and reports section                         -->
  <!-- ################################################################ -->

  <build>

    <nagEmailAddress>axis-c-dev@apache.org</nagEmailAddress>
    <sourceDirectory>${basedir}/src</sourceDirectory>
    <unitTestSourceDirectory>${basedir}/src/test</unitTestSourceDirectory>

    <unitTest>
      <includes>
	<include>**/_test*.c</include>
      </includes>
      <excludes>
	<exclude>**/*Test*All.c</exclude>
      </excludes>
    </unitTest>

    <resources/>  <!-- (OPTIONAL) Resources packaged inside the JAR file. -->

  </build>

  <reports>
    <report>maven-changes-plugin</report>
  </reports>

</project>
