<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
  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. 
-->
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <!--
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
            This file is generated from XML source: DO NOT EDIT!
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   -->
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	<link rel="stylesheet" href="/style/compressed.css" type="text/css" media="screen, projection"/>
	<link rel="stylesheet" href="/style/style.css" type="text/css" media="screen, projection"/>
	<link rel="stylesheet" href="/style/attic.css" type="text/css" media="screen, projection"/>
	<!--[if IE]><link rel="stylesheet" href="/style/ie.css" type="text/css" media="screen, projection"/><![endif]-->
     <meta name="author" content="The Apache Software Foundation" /><meta name="email" content="general.AT.attic.apache.DOT.org" />
    <title>Apache Chemistry - Apache Attic</title>
  
 </head>
 <body id="sub">
	<div class="container">
	<hr class="space col"/>
	<div class="block">
		<div class="column span-24">
      <div id="header">
                          <!-- Add 'default' header section here. -->
                                <h1>Apache Chemistry</h1>
                         </div>
      </div>
	</div>
	<hr/>
	<div class="block content">
		<div class="column span-15 colborder">
                            
<div class="section-content">
<p><a href="http://chemistry.apache.org/">Apache Chemistry</a>
     moved into the Attic in 2022-02.
     Apache Chemistry mission was the creation and maintenance of software related to
     CMIS (Content Managment Interoperability Services) Clients and Servers.</p>
<p>The website, downloads and issue tracker all remain open, though 
     the issue tracker is read-only. See the website at
     <a href="http://chemistry.apache.org/">http://chemistry.apache.org</a>
     for more information on Chemistry.</p>
<p>As with any project in the Attic - if you should choose to fork Chemistry
     outside of Apache, please let us know so we can link to your project.
  </p>

  <table style="margin-left: auto; margin-right:auto; width:90%">
    <tr>
      <th>Read-only Resource</th>
      <th>Link(s)</th>
    </tr>
    <tr>
      <td>Website</td>
      <td><a href="http://chemistry.apache.org/">chemistry.apache.org/</a></td>
    </tr>
    <tr>
      <td>Mailing List Archives</td>
      <td>
        <a href="http://mail-archives.apache.org/mod_mbox/chemistry-dev/">dev</a>
        | <a href="http://mail-archives.apache.org/mod_mbox/chemistry-commits/">commits</a>
      </td>
    </tr>
    <tr>
      <td>Issue Tracker (JIRA)</td>
      <td><a href="https://issues.apache.org/jira/browse/CMIS/">CMIS</a></td>
    </tr>
    <tr>
      <td>Source Code (Subversion)</td>
      <td><a href="http://svn.apache.org/repos/asf/chemistry/">svn.apache.org/repos/asf/chemistry/</a></td>
    </tr>
    <tr>
      <td>Source Code (Git)</td>
      <td><a href="https://gitbox.apache.org/repos/asf#chemistry">https://gitbox.apache.org/repos/asf#chemistry</a></td>
    </tr>
    <tr>
      <td>Board Reports</td>
      <td><a href="https://whimsy.apache.org/board/minutes/chemistry.html">Minutes</a></td>
    </tr>
    <tr>
      <td>Downloads</td>
      <td><a href="http://archive.apache.org/dist/chemistry/">archive.apache.org/dist/chemistry/</a> 
      | <a href="http://archive.apache.org/dist/chemistry/KEYS">KEYS</a>
      </td>
    </tr>
  </table>

</div>
         </div>
    <div class="column span-8 last">
      <div class="block">
        <div class="nav column span-11">
          <div>
               <div class="menuheader">The Apache Attic</div>
  <ul>
          <li><a href="/">Home</a></li> 
          <li><a href="https://projects.apache.org/committee.html?attic">The team</a></li> 
          <li><a href="/process.html">Process</a></li> 
          <li><a href="/tracking.html">Process tracking</a></li> 
          <li><a href="https://whimsy.apache.org/board/minutes/Attic.html">Board Minutes</a></li> 
          <li><a href="http://www.apache.org/licenses/">License</a></li> 
          <li><a href="http://www.apache.org/security/">Security</a></li> 
      </ul>
      <div class="menuheader">Related Apache Links</div>
  <ul>
          <li><a href="http://www.apache.org/">Foundation</a></li> 
          <li><a href="http://www.apache.org/foundation/sponsorship.html">Donate</a></li> 
          <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> 
          <li><a href="http://incubator.apache.org/">Incubator</a></li> 
          <li><a href="http://apachecon.com/">ApacheCon</a></li> 
      </ul>
          </div>
        </div>
        <div class="nav column prepend-1 span-12 last">
               <h6>Projects in the Attic</h6>
  <ul>
          <li><a href="/projects/abdera.html">Abdera</a></li> 
          <li><a href="/projects/ace.html">ACE</a></li> 
          <li><a href="/projects/apex.html">Apex</a></li> 
          <li><a href="/projects/aurora.html">Aurora</a></li> 
          <li><a href="/projects/avalon.html">Avalon</a></li> 
          <li><a href="/projects/axkit.html">AxKit</a></li> 
          <li><a href="/projects/axis-sandesha-c.html">Axis Sandesha2/C</a></li> 
          <li><a href="/projects/axis-savan-c.html">Axis Savan/C</a></li> 
          <li><a href="/projects/axis-savan-java.html">Axis Savan/Java</a></li> 
          <li><a href="/projects/beehive.html">Beehive</a></li> 
          <li><a href="/projects/chemistry.html">Chemistry</a></li> 
          <li><a href="/projects/chukwa.html">Chukwa</a></li> 
          <li><a href="/projects/clerezza.html">Clerezza</a></li> 
          <li><a href="/projects/click.html">Click</a></li> 
          <li><a href="/projects/climate.html">Open Climate Workbench</a></li> 
          <li><a href="/projects/crimson.html">Crimson</a></li> 
          <li><a href="/projects/continuum.html">Continuum</a></li> 
          <li><a href="/projects/crunch.html">Crunch</a></li> 
          <li><a href="/projects/deltacloud.html">Deltacloud</a></li> 
          <li><a href="/projects/devicemap.html">DeviceMap</a></li> 
          <li><a href="/projects/directmemory.html">DirectMemory</a></li> 
          <li><a href="/projects/drat.html">DRAT</a></li> 
          <li><a href="/projects/eagle.html">Eagle</a></li> 
          <li><a href="/projects/esme.html">ESME</a></li> 
          <li><a href="/projects/etch.html">Etch</a></li> 
          <li><a href="/projects/excalibur.html">Excalibur</a></li> 
          <li><a href="/projects/falcon.html">Falcon</a></li> 
          <li><a href="/projects/forrest.html">Forrest</a></li> 
          <li><a href="/projects/hama.html">Hama</a></li> 
          <li><a href="/projects/harmony.html">Harmony</a></li> 
          <li><a href="/projects/hivemind.html">HiveMind</a></li> 
          <li><a href="/projects/ibatis.html">iBATIS</a></li> 
          <li><a href="/projects/jakarta.html">Jakarta</a></li> 
          <li><a href="/projects/jakarta-cactus.html">Jakarta Cactus</a></li> 
          <li><a href="/projects/jakarta-ecs.html">Jakarta ECS</a></li> 
          <li><a href="/projects/jakarta-oro.html">Jakarta ORO</a></li> 
          <li><a href="/projects/jakarta-regexp.html">Jakarta Regexp</a></li> 
          <li><a href="/projects/jakarta-slide.html">Jakarta Slide</a></li> 
          <li><a href="/projects/jakarta-taglibs.html">Jakarta Taglibs</a></li> 
          <li><a href="/projects/joshua.html">Joshua</a></li> 
          <li><a href="/projects/labs.html">Labs</a></li> 
          <li><a href="/projects/lens.html">Lens</a></li> 
          <li><a href="/projects/lenya.html">Lenya</a></li> 
          <li><a href="/projects/lucy.html">Lucy</a></li> 
          <li><a href="/projects/marmotta.html">Marmotta</a></li> 
          <li><a href="/projects/metamodel.html">MetaModel</a></li> 
          <li><a href="/projects/metron.html">Metron</a></li> 
          <li><a href="/projects/mrunit.html">MRUnit</a></li> 
          <li><a href="/projects/ode.html">ODE</a></li> 
          <li><a href="/projects/ojb.html">ObJectRelationalBridge (OJB)</a></li> 
          <li><a href="/projects/oltu.html">Oltu (previously Amber)</a></li> 
          <li><a href="/projects/onami.html">Onami</a></li> 
          <li><a href="/projects/polygene.html">Polygene</a></li> 
          <li><a href="/projects/predictionio.html">PredictionIO</a></li> 
          <li><a href="/projects/quetzalcoatl.html">Quetzalcoatl</a></li> 
          <li><a href="/projects/rave.html">Rave</a></li> 
          <li><a href="/projects/river.html">River</a></li> 
          <li><a href="/projects/sentry.html">Sentry</a></li> 
          <li><a href="/projects/shale.html">Shale</a></li> 
          <li><a href="/projects/shindig.html">Shindig</a></li> 
          <li><a href="/projects/sqoop.html">Sqoop</a></li> 
          <li><a href="/projects/stdcxx.html">Standard C++ Library (STDCXX)</a></li> 
          <li><a href="/projects/stanbol.html">Stanbol</a></li> 
          <li><a href="/projects/stratos.html">Stratos</a></li> 
          <li><a href="/projects/tajo.html">Tajo</a></li> 
          <li><a href="/projects/tiles.html">Tiles</a></li> 
          <li><a href="/projects/trafodion.html">Trafodion</a></li> 
          <li><a href="/projects/tuscany.html">Tuscany</a></li> 
          <li><a href="/projects/twill.html">Twill</a></li> 
          <li><a href="/projects/usergrid.html">Usergrid</a></li> 
          <li><a href="/projects/vxquery.html">VXQuery</a></li> 
          <li><a href="/projects/whirr.html">Whirr</a></li> 
          <li><a href="/projects/wink.html">Wink</a></li> 
          <li><a href="/projects/wookie.html">Wookie</a></li> 
          <li><a href="/projects/muse.html">WS Muse</a></li> 
          <li><a href="/projects/xang.html">Xang</a></li> 
          <li><a href="/projects/xindice.html">Xindice</a></li> 
          <li><a href="/projects/xmlbeans.html">XMLBeans</a>
        ; revived June 2018
      </li> 
          <li><a href="/projects/xml.html">XML</a></li> 
      </ul>
        </div>
      </div>
    </div>
    <div class="column span-24 footer">
      <hr/>
        <p>Copyright &#169; 2009-2021 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
      </div>
    </div>
  </div>
</body>
</html>

