<?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/axis/trunk</connection>
       <developerConnection>scm|svn|https://svn.apache.org/repos/asf/webservices/axis/trunk</developerConnection>
       <url>http://svn.apache.org/viewcvs.cgi/webservices/axis/trunk/?root=Apache-SVN</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.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Dushshantha Chandradasa</name>
      <id>dushshantha</id>
      <email>dushshantha AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Chris Darroch</name>
      <id>chrisd</id>
      <email>chrisd AT pearsoncmg.com</email>
      <organization>Pearson Education Core Technology Group</organization>
    </developer>
    <developer>
      <name>Paul Fremantle</name>
      <id>pzf</id>
      <email>paul AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Dimuthu Gamage</name>
      <id>dimuthu</id>
      <email>dimuthuc AT gmail.com</email>
      <organization>Univerisity of Moratuwa</organization>
    </developer>
    <developer>
      <name>Sahan Gamage</name>
      <id>sahan</id>
      <email>sahans AT gmail.com</email>
      <organization>Purdue University</organization>
    </developer>
    <developer>
      <name>Nandika Jayawardana</name>
      <id>nandika</id>
      <email>nandika AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Supun Kamburugamuva</name>
      <id>supun</id>
      <email>supun06 AT gmail.com</email>
      <organization>Univerisity of Moratuwa</organization>
    </developer>
    <developer>
      <name>Kaushalye Kapuruge</name>
      <id>kaushalye</id>
      <email>kaushalye AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Damitha Kumarage</name>
      <id>damitha</id>
      <email>damitha AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Dumindu Pallewela</name>
      <id>dumindu</id>
      <email>dumindu AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Milinda Pathirage</name>
      <id>milinda</id>
      <email>milinda.pathirage AT gmail.com</email>
      <organization>Univerisity of Moratuwa</organization>
    </developer>
    <developer>
      <name>Manjula Peiris</name>
      <id>manjula</id>
      <email>manjula AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Dinesh Premalal</name>
      <id>dinesh</id>
      <email>dinesh AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Sanjaya Rathnaweera</name>
      <id>pini</id>
      <email>sanjaya AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Davanum Srinivas</name>
      <id>dims</id>
      <email>davanum AT gmail.com</email>
      <organization> </organization>
    </developer>
    <developer>
      <name>Sanjiva Weerawarana</name>
      <id>sanjiva</id>
      <email>sanjiva AT wso2.com</email>
      <organization>WSO2</organization>
    </developer>
    <developer>
      <name>Nabeel Yoosuf</name>
      <id>nabeel</id>
      <email>nabeel.yoosuf AT gmail.com</email>
      <organization>Purdue University</organization>
    </developer>    
  </developers>
  <contributors>
    <contributor>
      <name>James Clark</name>
      <email>jjc AT public.jclark.com</email>
      <roles>
	<role>Technical Adviser on Building a Portable/Re-usable C library</role>
      </roles>
    </contributor>
    <contributor>
      <name>Buddhika Semashinghe</name>
      <email>buddhika@wso2.com</email>
      <roles>
	<role>Helps to improve overall quality of the code base</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>
	<report>maven-jdepend-plugin</report>
	<report>maven-checkstyle-plugin</report>
	<report>maven-pmd-plugin</report>
	<report>maven-junit-report-plugin</report>
	<report>maven-clover-plugin</report>
	<report>maven-changelog-plugin</report>
	<report>maven-file-activity-plugin</report>
	<report>maven-developer-activity-plugin</report>
	<report>maven-file-activity-plugin</report>
	<report>maven-license-plugin</report>
	<report>maven-linkcheck-plugin</report>
	<report>maven-jxr-plugin</report-->
    <report>maven-changes-plugin</report>
  </reports>

</project>
