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

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

  =======================================================================
-->
  <Project rdf:about="http://JAMES.rdf.apache.org/">
    <created>2006-03-14</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache JAMES</name>
    <homepage rdf:resource="http://james.apache.org" />
    <asfext:pmc rdf:resource="http://james.apache.org" />
    <shortdesc>The Apache Java Enterprise Mail Server (a.k.a. Apache James) is a 100% pure Java SMTP and POP3 Mail server and NNTP News server. We have designed James to be a complete and portable enterprise mail engine solution based on currently available open protocols. </shortdesc>
    <description>The Apache Java Enterprise Mail Server (a.k.a. Apache James) is a 100% pure Java SMTP and POP3 Mail server and NNTP News server. We have designed James to be a complete and portable enterprise mail engine solution based on currently available open protocols.

James is also a mail application platform. We have developed a Java API to let you write Java code to process emails that we call the mailet API. A mailet can generate an automatic reply, update a database, prevent spam, build a message archive, or whatever you can imagine. A matcher determines whether your mailet should process an email in the server. The James project hosts the Mailet API, and James provides an implementation of this mail application platform API.
</description>
    <bug-database rdf:resource="http://issues.apache.org/jira/browse/JAMES" />
    <mailing-list rdf:resource="http://james.apache.org/mail.html" />
    <download-page rdf:resource="http://james.apache.org/download.cgi" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/mail" />
    <category rdf:resource="http://projects.apache.org/category/network-server" />
    <release>
      <Version>
        <name>Latest Stable Release</name>
        <created>2009-08-10</created>
        <revision>2.3.2</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Latest Test Build</name>
        <created>2012-03-02</created>
        <revision>3.0.beta4</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Automated Nightly Build</name>
        <created>nightly</created>
        <revision>svn trunk</revision>
      </Version>
    </release>
    <repository>
      <SVNRepository>
        <location rdf:resource="http://svn.apache.org/repos/asf/james/server/trunk"/>
        <browse rdf:resource="http://svn.apache.org/viewcvs.cgi/james/server/trunk/"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Apache JAMES Team</foaf:name>
          <foaf:mbox rdf:resource="mailto:server-dev@james.apache.org"/>
      </foaf:Person>
    </maintainer>
    <asfext:implements><asfext:Standard>
      <asfext:title>Simple Mail Transfer Protocol</asfext:title>
      <asfext:body>IETF</asfext:body>
      <asfext:id>RFC 2821</asfext:id>
      <asfext:url rdf:resource="http://www.ietf.org/rfc/rfc2821.txt"/>
    </asfext:Standard></asfext:implements>
    <asfext:implements><asfext:Standard>
      <asfext:title>Internet Message Format</asfext:title>
      <asfext:body>IETF</asfext:body>
      <asfext:id>RFC 2822</asfext:id>
      <asfext:url rdf:resource="http://www.ietf.org/rfc/rfc2822.txt"/>
    </asfext:Standard></asfext:implements>
    <asfext:implements><asfext:Standard>
      <asfext:title>Post Office Protocol - Version 3</asfext:title>
      <asfext:body>IETF</asfext:body>
      <asfext:id>RFC 1939</asfext:id>
      <asfext:url rdf:resource="http://www.ietf.org/rfc/rfc1939.txt"/>
    </asfext:Standard></asfext:implements>
    <asfext:implements><asfext:Standard>
      <asfext:title>NNTP Protocol </asfext:title>
      <asfext:body>IETF</asfext:body>
      <asfext:id>RFC 977</asfext:id>
      <asfext:url rdf:resource="http://www.ietf.org/rfc/rfc977.txt"/>
    </asfext:Standard></asfext:implements>
  </Project>
</rdf:RDF>
