<?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://deltaspike.apache.org">
    <created>2014-04-11</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache DeltaSpike</name>
    <homepage rdf:resource="http://deltaspike.apache.org" />
    <asfext:pmc rdf:resource="http://deltaspike.apache.org" />
    <shortdesc>DeltaSpike is a collection of portable Extensions for CDI Containers</shortdesc>
    <description>Apache DeltaSpike is a portable JSR-299 CDI (Contexts and Dependency Injection for Java) Extension library which contains lots of useful tools and helpers which are missing in the CDI core spec.

DeltaSpike is not a CDI-container itself, but a portable
Extension library which can run on all CDI-containers!

DeltaSpike is tested and runs on many Java EE Servers like Apache TomEE, Red Hat JBoss Application Server, JBoss Wildfly, Oracle WebLogic, Oracle Glassfish, IBM WebSphere, and also on simple Servlet containers like Apache Tomcat or Jetty in combination with either JBoss Weld or Apache OpenWebBeans.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/DELTASPIKE" />
    <mailing-list rdf:resource="http://deltaspike.apache.org/community.html#mailing-lists" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/javaee" />
    <repository>
      <SVNRepository>
        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/deltaspike.git"/>
        <browse rdf:resource="https://git-wip-us.apache.org/repos/asf?p=deltaspike.git"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Mark Struberg</foaf:name>
          <foaf:mbox rdf:resource="mailto:struberg@apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
