<?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://groovy.apache.org">
    <created>2015-12-23</created>
    <license rdf:resource="http://spdx.org/licenses/Apache-2.0" />
    <name>Apache Groovy</name>
    <homepage rdf:resource="http://groovy.apache.org" />
    <asfext:pmc rdf:resource="http://groovy.apache.org" />
    <shortdesc>A multi-faceted language for the Java platform</shortdesc>
    <description>Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/GROOVY" />
    <mailing-list rdf:resource="http://groovy-lang.org/mailing-lists.html" />
    <download-page rdf:resource="http://groovy-lang.org/download.html" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/library" />
    <repository>
      <GitRepository>
        <location rdf:resource="https://gitbox.apache.org/repos/asf/groovy.git"/>
        <browse rdf:resource="http://github.com/apache/groovy"/>
      </GitRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Groovy Team</foaf:name>
          <foaf:mbox rdf:resource="mailto:dev@groovy.apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
