<?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://stratos.apache.org/">
    <created>2014-06-09</created>
    <license rdf:resource="http://spdx.org/licenses/Apache-2.0" />
    <name>Apache Stratos</name>
    <homepage rdf:resource="http://stratos.apache.org/" />
    <asfext:pmc rdf:resource="http://stratos.apache.org" />
    <shortdesc>Apache Stratos is a highly-extensible Platform-as-a-Service (PaaS) framework that helps run Apache Tomcat, PHP, and MySQL applications and can be extended to support many more environments on all major cloud infrastructures. </shortdesc>
    <description>Apache Stratos is a highly-extensible Platform-as-a-Service (PaaS) framework that helps run Apache Tomcat, PHP, and MySQL applications and can be extended to support many more environments on all major cloud infrastructures. For developers, Stratos provides a cloud-based environment for developing, testing, and running scalable applications. IT providers benefit from high utilization rates, automated resource management, and platform-wide insight including monitoring and billing.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/stratos" />
    <mailing-list rdf:resource="http://stratos.apache.org/community/mailing-lists.html" />
    <download-page rdf:resource="http://stratos.apache.org/releases/index.html" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/cloud" />
    <release>
      <Version>
        <name>Apache Stratos 3.0.0-incubating</name>
        <created>2013-11-09</created>
        <revision></revision>
      </Version>
    </release>
    <repository>
      <SVNRepository>
        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/stratos.git"/>
        <browse rdf:resource="http://stratos.apache.org/development/source.html"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Lakmal Warusawithana</foaf:name>
          <foaf:mbox rdf:resource="mailto:lakmal@apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
