<?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.
-->
<rdf:RDF 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:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:doap="http://usefulinc.com/ns/doap#" xml:lang="en">
  <Project rdf:about="http://commons.apache.org/jcs/">
    <name>Apache Commons JCS</name>
    <homepage rdf:resource="http://commons.apache.org/jcs/"/>
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/library"/>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20"/>
    <bug-database rdf:resource="http://issues.apache.org/jira/browse/JCS"/>
    <download-page rdf:resource="http://commons.apache.org/jcs/DownloadPage.html"/>
    <asfext:pmc rdf:resource="http://commons.apache.org/"/>
    <shortdesc xml:lang="en">Java Caching System</shortdesc>
    <description xml:lang="en">Comprehensive Caching System</description>
    <repository>
      <SVNRepository>
        <browse rdf:resource="http://svn.apache.org/viewcvs.cgi/commons/proper/jcs/trunk/"/>
        <location rdf:resource="http://svn.apache.org/repos/asf/commons/proper/jcs"/>
      </SVNRepository>
    </repository>
    <mailing-list rdf:resource="http://commons.apache.org/jcs/mail-lists.html"/>
  </Project>
</rdf:RDF>
