<?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.
-->
<!--
 +======================================================================+
 |****                                                              ****|
 |****      THIS FILE IS GENERATED BY THE COMMONS BUILD PLUGIN      ****|
 |****                    DO NOT EDIT DIRECTLY                      ****|
 |****                                                              ****|
 +======================================================================+
 | TEMPLATE FILE: mail-lists-template.xml                               |
 | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
 +======================================================================+
 |                                                                      |
 | 1) Re-generate using: mvn commons:mail-page                          |
 |                                                                      |
 | 2) Set the following properties in the component's pom:              |
 |    - commons.componentid (required, alphabetic, lower case)          |
 |                                                                      |
 | 3) Example Properties                                                |
 |                                                                      |
 |  <properties>                                                        |
 |    <commons.componentid>math</commons.componentid>                   |
 |  </properties>                                                       |
 |                                                                      |
 +======================================================================+
-->
<document>
  <properties>
    <title>Apache Commons Geometry Mailing Lists</title>
    <author email="dev@commons.apache.org">Apache Commons Documentation Team</author>
  </properties>
  <body>

    <section name="Overview">
      <p>
        <a href="index.html">Apache Commons Geometry</a> shares mailing lists with all the other
        <a href="https://commons.apache.org/components.html">Commons Components</a>.
        To make it easier for people to only read messages related to components they are interested in,
        the convention in Commons is to prefix the subject line of messages with the component's name,
        for example:
        <ul>
          <li>[geometry] Problem with the ...</li>
        </ul>
      </p>
      <p>
        Questions related to the usage of Apache Commons Geometry should be posted to the
        <a href="https://mail-archives.apache.org/mod_mbox/commons-user/">User List</a>.
        <br />
        The <a href="https://mail-archives.apache.org/mod_mbox/commons-dev/">Developer List</a>
        is for questions and discussion related to the development of Apache Commons Geometry.
        <br />
        Please do not cross-post; developers are also subscribed to the user list.
        <br />
        You must be subscribed to post to the mailing lists.  Follow the Subscribe links below
        to subscribe.
      </p>
      <p>
        <strong>Note:</strong> please don't send patches or attachments to any of the mailing lists.
        Patches are best handled via the <a href="issue-tracking.html">Issue Tracking</a> system.
        Otherwise, please upload the file to a public server and include the URL in the mail.
      </p>
    </section>

    <section name="Apache Commons Geometry Mailing Lists">
      <p>
        <strong>Please prefix the subject line of any messages for <a href="index.html">Apache Commons Geometry</a>
        with <i>[geometry]</i></strong> - <i>thanks!</i>
        <br />
        <br />
      </p>

      <table>
        <tr>
          <th>Name</th>
          <th>Subscribe</th>
          <th>Unsubscribe</th>
          <th>Post</th>
          <th>Archive</th>
          <th>Other Archives</th>
        </tr>


        <tr>
          <td>
            <strong>Commons User List</strong>
            <br /><br />
            Questions on using Apache Commons Geometry.
            <br /><br />
          </td>
          <td><a href="mailto:user-subscribe@commons.apache.org">Subscribe</a></td>
          <td><a href="mailto:user-unsubscribe@commons.apache.org">Unsubscribe</a></td>
          <td><a href="mailto:user@commons.apache.org?subject=[geometry]">Post</a></td>
          <td><a href="https://mail-archives.apache.org/mod_mbox/commons-user/">mail-archives.apache.org</a></td>
          <td><a href="http://markmail.org/list/org.apache.commons.users/">markmail.org</a><br />
              <a href="http://www.mail-archive.com/user@commons.apache.org/">www.mail-archive.com</a><br />
              <a href="http://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a>
          </td>
        </tr>


        <tr>
          <td>
            <strong>Commons Developer List</strong>
            <br /><br />
            Discussion of development of Apache Commons Geometry.
            <br /><br />
          </td>
          <td><a href="mailto:dev-subscribe@commons.apache.org">Subscribe</a></td>
          <td><a href="mailto:dev-unsubscribe@commons.apache.org">Unsubscribe</a></td>
          <td><a href="mailto:dev@commons.apache.org?subject=[geometry]">Post</a></td>
          <td><a href="https://mail-archives.apache.org/mod_mbox/commons-dev/">mail-archives.apache.org</a></td>
          <td><a href="http://markmail.org/list/org.apache.commons.dev/">markmail.org</a><br />
              <a href="http://www.mail-archive.com/dev@commons.apache.org/">www.mail-archive.com</a><br />
              <a href="http://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a>
          </td>
        </tr>


        <tr>
          <td>
            <strong>Commons Issues List</strong>
            <br /><br />
            Only for e-mails automatically generated by the <a href="issue-tracking.html">issue tracking</a> system.
            <br /><br />
          </td>
          <td><a href="mailto:issues-subscribe@commons.apache.org">Subscribe</a></td>
          <td><a href="mailto:issues-unsubscribe@commons.apache.org">Unsubscribe</a></td>
          <td><i>read only</i></td>
          <td><a href="https://mail-archives.apache.org/mod_mbox/commons-issues/">mail-archives.apache.org</a></td>
          <td><a href="http://markmail.org/list/org.apache.commons.issues/">markmail.org</a><br />
              <a href="http://www.mail-archive.com/issues@commons.apache.org/">www.mail-archive.com</a>
          </td>
        </tr>


        <tr>
          <td>
            <strong>Commons Commits List</strong>
            <br /><br />
            Only for e-mails automatically generated by the <a href="scm.html">source control</a> sytem.
            <br /><br />
          </td>
          <td><a href="mailto:commits-subscribe@commons.apache.org">Subscribe</a></td>
          <td><a href="mailto:commits-unsubscribe@commons.apache.org">Unsubscribe</a></td>
          <td><i>read only</i></td>
          <td><a href="https://mail-archives.apache.org/mod_mbox/commons-commits/">mail-archives.apache.org</a></td>
          <td><a href="http://markmail.org/list/org.apache.commons.commits/">markmail.org</a><br />
              <a href="http://www.mail-archive.com/commits@commons.apache.org/">www.mail-archive.com</a>
          </td>
        </tr>

      </table>

    </section>
    <section name="Apache Mailing Lists">
      <p>
        Other mailing lists which you may find useful include:
      </p>

      <table>
        <tr>
          <th>Name</th>
          <th>Subscribe</th>
          <th>Unsubscribe</th>
          <th>Post</th>
          <th>Archive</th>
          <th>Other Archives</th>
        </tr>
        <tr>
          <td>
            <strong>Apache Announce List</strong>
            <br /><br />
            General announcements of Apache project releases.
            <br /><br />
          </td>
          <td><a class="externalLink" href="mailto:announce-subscribe@apache.org">Subscribe</a></td>
          <td><a class="externalLink" href="mailto:announce-unsubscribe@apache.org">Unsubscribe</a></td>
          <td><i>read only</i></td>
          <td><a class="externalLink" href="https://mail-archives.apache.org/mod_mbox/www-announce/">mail-archives.apache.org</a></td>
          <td><a class="externalLink" href="http://markmail.org/list/org.apache.announce/">markmail.org</a><br />
              <a class="externalLink" href="http://old.nabble.com/Apache-News-and-Announce-f109.html">old.nabble.com</a><br />
              <a class="externalLink" href="http://www.mail-archive.com/announce@apache.org/">www.mail-archive.com</a><br />
              <a class="externalLink" href="http://news.gmane.org/gmane.comp.apache.announce">news.gmane.org</a>
          </td>
        </tr>
      </table>

    </section>
  </body>
</document>
