<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
         xmlns="http://usefulinc.com/ns/doap#" 
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns:asfext="http://projects.apache.org/ns/asfext#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
<!--
  ~ 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 rdf:about="http://axis.apache.org/axis2/java/core">
    <created>2007-06-08</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache Axis2</name>
    <homepage rdf:resource="http://axis.apache.org/axis2/java/core" />
    <asfext:pmc rdf:resource="http://axis.apache.org" />
    <shortdesc>Apache Axis2 is a service hosting and consumption framework that makes it easy to use SOAP and Web Services</shortdesc>
    <description>Apache Axis2 is a toolkit for creating and using Web Services, including SOAP, MTOM, XML/HTTP and advanced WS-* standards such as WSRM and WSSecurity.
    Axis2 includes a very fast runtime engine, together with tooling support for WSDL and WS-Policy, and plugin support for WS-Addressing, WS-ReliableMessaging, WS-Security, 
    WS-Eventing, WS-Transactions, WS-Trust and WS-SecureConversation.
    Axis2 runs either standalone or hosted in Tomcat or other servlet containers. 
    </description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/AXIS2" />
    <mailing-list rdf:resource="http://axis.apache.org/axis2/java/core/mail-lists.html" />
    <download-page rdf:resource="http://axis.apache.org/axis2/java/core/download.cgi" />
    <programming-language>Java</programming-language>
    <programming-language>C</programming-language>
    <category rdf:resource="http://projects.apache.org/category/xml" />
    <category rdf:resource="http://projects.apache.org/category/http"/> 
    <category rdf:resource="http://projects.apache.org/category/network-server"/> 
    <category rdf:resource="http://projects.apache.org/category/network-client"/> 
    
    <release><Version><name>Apache Axis2</name><created>2006-05-04</created><revision>1.0</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2006-11-13</created><revision>1.1</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2007-01-09</created><revision>1.1.1</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2007-04-27</created><revision>1.2</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2007-07-06</created><revision>1.3</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2008-02-05</created><revision>1.4</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2008-08-24</created><revision>1.4.1</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2009-06-09</created><revision>1.5</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2009-10-23</created><revision>1.5.1</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2010-09-06</created><revision>1.5.2</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2010-11-12</created><revision>1.5.3</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2010-12-19</created><revision>1.5.4</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2011-05-29</created><revision>1.5.5</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2011-08-30</created><revision>1.5.6</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2011-05-17</created><revision>1.6.0</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2011-08-30</created><revision>1.6.1</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2012-04-17</created><revision>1.6.2</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2015-06-27</created><revision>1.6.3</revision></Version></release>
    <release><Version><name>Apache Axis2</name><created>2015-12-28</created><revision>1.6.4</revision></Version></release>
    
    <repository>
      <SVNRepository>
        <location rdf:resource="http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/"/>
        <browse rdf:resource="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Axis2 Development Team</foaf:name>
        <foaf:mbox rdf:resource="mailto:java-dev@axis.apache.org?subject=[Axis2]"/>
      </foaf:Person>
    </maintainer>
    <asfext:implements><asfext:Standard>
      <asfext:title>SOAP1.1</asfext:title>
      <asfext:body>W3C</asfext:body>
      <asfext:id>SOAP1.1</asfext:id>
      <asfext:url rdf:resource="http://www.w3.org/TR/soap/"/>
    </asfext:Standard></asfext:implements>
    <asfext:implements><asfext:Standard>
      <asfext:title>SOAP1.2</asfext:title>
      <asfext:body>W3C</asfext:body>
      <asfext:id>SOAP1.2</asfext:id>
      <asfext:url rdf:resource="http://www.w3.org/TR/soap12-part1/"/>
    </asfext:Standard></asfext:implements>
    <asfext:implements><asfext:Standard>
      <asfext:title>MTOM</asfext:title>
      <asfext:body>W3C</asfext:body>
      <asfext:id>SOAP-MTOM</asfext:id>
      <asfext:url rdf:resource="http://www.w3.org/TR/soap12-mtom/"/>
    </asfext:Standard></asfext:implements>
    <asfext:implements><asfext:Standard>
      <asfext:title>HTTP</asfext:title>
      <asfext:body>IETF</asfext:body>
      <asfext:id>HTTP 1.1</asfext:id>
      <asfext:url rdf:resource="http://www.w3.org/Protocols/rfc2616/rfc2616.html"/>
    </asfext:Standard></asfext:implements>
    <asfext:implements><asfext:Standard>
      <asfext:title>WS-Addressing</asfext:title>
      <asfext:body>W3C</asfext:body>
      <asfext:id>WSA</asfext:id>
      <asfext:url rdf:resource="http://www.w3.org/2002/ws/addr/"/>
    </asfext:Standard></asfext:implements>
    <asfext:implements><asfext:Standard>
      <asfext:title>WS-ReliableMessaging</asfext:title>
      <asfext:body>OASIS</asfext:body>
      <asfext:id>WSRM</asfext:id>
      <asfext:url rdf:resource="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ws-rx"/>
    </asfext:Standard></asfext:implements>
    <asfext:implements><asfext:Standard>
      <asfext:title>WS-Security</asfext:title>
      <asfext:body>OASIS</asfext:body>
      <asfext:id>WSSEC</asfext:id>
      <asfext:url rdf:resource="http://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf"/>
    </asfext:Standard></asfext:implements>
  </Project>
</rdf:RDF>
