<?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://apex.apache.org">
    <created>2016-05-18</created>
    <license rdf:resource="http://spdx.org/licenses/Apache-2.0" />
    <name>Apache Apex</name>
    <homepage rdf:resource="http://apex.apache.org" />
    <asfext:pmc rdf:resource="http://apex.apache.org" />
    <shortdesc>Enterprise-grade unified stream and batch processing engine.</shortdesc>
    <description>Apache Apex is a unified platform for big data stream and batch processing. Use cases include ingestion, ETL, real-time analytics, alerts and real-time actions. Apex is a Hadoop-native YARN implementation and uses HDFS by default. It simplifies development and productization of Hadoop applications by reducing time to market. Key features include Enterprise Grade Operability with Fault Tolerance, State Management, Event Processing Guarantees, No Data Loss, In-memory Performance &amp; Scalability and Native Window Support.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/APEXCORE" />
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/APEXMALHAR" />
    <download-page rdf:resource="http://apex.apache.org/downloads.html" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/big-data" />
    <repository>
      <GitRepository>
        <location rdf:resource="https://github.com/apache/apex-core.git"/>
        <browse rdf:resource="https://github.com/apache/apex-core.git"/>
      </GitRepository>
    </repository>
    <repository>
      <GitRepository>
        <location rdf:resource="https://github.com/apache/apex-malhar.git"/>
        <browse rdf:resource="https://github.com/apache/apex-malhar.git"/>
      </GitRepository>
    </repository>
  </Project>
</rdf:RDF>

