<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

-->

<!-- This document is used as source for generating www/dev/todo.html.
     When you change this, please regenerate result document by 'ant todo' in www directory.
  -->

<list module="tools">
    <item priority="2">
        <summary>Cleanup files structure</summary>
        <description>Files' structure is not synoptical. I see two possible structures:
<ul>
    <li><b>By services</b> - each service has its own folder which contains cookies,
        actions, impl, wizard, ...</li>
    <li><b>By class types</b> - separated parts (cookies, actions, impl, wizard, ...) of
        each service are in common folder.</li>
</ul>
        </description>
    </item>
</list>
