<?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.
-->
<status>
  <changes>
    <release version="0.2-dev" date="not-released">
      <action dev="RDG" type="update" context="code" importance="high">
       Use the locationmap to expose internal resources.
      </action>
    </release>
    <release version="0.1" date="not-released">
      <action dev="RDG" type="update" context="admin">
       Renamed to bring into line with our naming conventions.
      </action>
      <action dev="DC" type="add" context="xmap">
       Added better sitemap match using regexp to deal
       with sub-directories too.
      </action>
      <action dev="DC" type="add" context="docs">
        Added samples for xdoc-v2.0 and xdoc-v1.3 collections of DTDs.
      </action>
      <action dev="DC" type="add" context="admin">
        Initial plugin, moving stuff out of forrest core.
      </action>
    </release>
  </changes>
  <todo>
    <actions priority="high">
      <action context="docs" dev="open">
        The java files for this plugin are still in core - need to move them
        into the plugin.
      </action>
      <action context="docs" dev="open">
        The sitemap generators are very specific to the filesystem of
        the Forrest core DTDs. Need to aslo enable it for project DTDs.
      </action>
      <action context="docs" dev="open">
        Some enhancements are listed at
        <a href="http://issues.apache.org/jira/browse/FOR-221">FOR-221</a>
      </action>
      <action context="docs" dev="open">
        Add an example of a local project DTD.
      </action>
    </actions>
  </todo>
</status>
