<?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>
  <name>Axis2C</name>
  <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>
  </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>
