<?xml version="1.0"?>
<rdf:RDF xml:lang="en"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<!--
  =======================================================================

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

  =======================================================================
-->
  <BISData>
      <Contact>
        <Project rdf:resource="http://james.apache.org">Apache JAMES</Project>
        <Name>Serge Knystautas</Name>
      </Contact>
      <Product name="JAMES Server">
        <Distribution versions="development">
          <CryptoSrc manufacturer="The Apache Software Foundation" rdf:resource="http://svn.apache.org/repos/asf/james/server"/>
          <CryptoSrc manufacturer="Bouncy Castle" rdf:resource="http://www.bouncycastle.org/download/bcmail-jdk14-129.tar.gz"/>
        </Distribution>
        <Distribution versions="v2.3.0-TO-latest">
          <CryptoSrc manufacturer="The Apache Software Foundation" rdf:resource="http://archive.apache.org/dist/james/server/source/"/>
          <CryptoSrc manufacturer="Bouncy Castle" rdf:resource="http://www.bouncycastle.org/download/bcmail-jdk14-129.tar.gz"/>
        </Distribution>
      </Product>
  </BISData>
</rdf:RDF>
