<?xml version="1.0"?>
<!--
  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.
-->

<?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/">
<!--
  =======================================================================

   Copyright (c) 2006 The Apache Software Foundation.  
   All rights reserved.

  =======================================================================
-->
  <Project rdf:about="http://ActiveMQ.rdf.apache.org/">
    <created>2006-03-27</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache ActiveMQ</name>
    <homepage rdf:resource="http://activemq.apache.org/" />
    <asfext:pmc rdf:resource="http://activemq.apache.org/" />
    <shortdesc>ActiveMQ is the most popular and powerful open source Message Broker.</shortdesc>
    <description>ActiveMQ is a fast and powerful Message Broker which supports many Cross Language Clients and Protocols and many advanced features while fully supporting JMS 1.1 and J2EE 1.4.</description>
    <bug-database rdf:resource="http://issues.apache.org/activemq/browse/AMQ" />
    <mailing-list rdf:resource="http://activemq.apache.org/mailing-lists.html" />
    <download-page rdf:resource="http://activemq.apache.org/download.html" />

    <programming-language>Java</programming-language>
    <programming-language>C</programming-language>
    <programming-language>C++</programming-language>
    <programming-language>Ruby</programming-language>
    <programming-language>Perl</programming-language>
    <programming-language>Python</programming-language>
    <programming-language>PHP</programming-language>
    <programming-language>C#</programming-language>

    <category rdf:resource="http://projects.apache.org/category/network-server" />
    <category rdf:resource="http://projects.apache.org/category/network-client" />
    <maintainer>
      <foaf:Person>
        <foaf:name>Hiram Chirino</foaf:name>
          <foaf:mbox rdf:resource="mailto:chirino@apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
