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

  <pomVersion>3</pomVersion>
  <id>velocity-site</id>
  <groupId>jakarta</groupId>
  <name>The Apache Jakarta Project</name>
  <currentVersion>1.0</currentVersion>
  <organization>
    <name>Apache Software Foundation</name>
    <url>http://jakarta.apache.org/</url>
    <logo>/images/jakarta.png</logo>
  </organization>
  <inceptionYear>2000</inceptionYear>
  <logo>/images/newlogo.png</logo>
  
  <description>
    This is the site module from the Apache Jakarta Velocity project.
  </description>

  <shortDescription>Apache Jakarta Velocity site module</shortDescription>

  <url>http://jakarta.apache.org/velocity/</url>
  <siteAddress>people.apache.org</siteAddress>
  <siteDirectory>/www/jakarta.apache.org/velocity/site/</siteDirectory>

  <mailingLists>
    <mailingList>
      <name>Velocity User List</name>
      <subscribe>velocity-user-subscribe@jakarta.apache.org</subscribe>
      <unsubscribe>velocity-user-unsubscribe@jakarta.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/jakarta-velocity-user</archive>
    </mailingList>
    <mailingList>
      <name>Velocity Developer List</name>
      <subscribe>velocity-dev-subscribe@jakarta.apache.org</subscribe>
      <unsubscribe>velocity-dev-unsubscribe@jakarta.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/jakarta-velocity-dev</archive>
    </mailingList>
  </mailingLists>

  <developers>

    <developer>
      <name>Will Glass-Husain</name>
      <id>wglass</id>
      <email>wglass@forio.com</email>
      <organization>Forio Business Simulations</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>

   <developer>
      <name>Geir Magnusson Jr.</name>
      <id>geirm</id>
      <email>geirm@optonline.net</email>
      <organization>Independent (DVSL Maven)</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>

    <developer>
      <name>Daniel Rall</name>
      <id>dlr</id>
      <email>dlr@finemaltcoding.com</email>
      <organization>CollabNet, Inc.</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>

    <developer>
      <name>Henning P. Schmiedehausen</name>
      <id>henning</id>
      <email>hps@intermeta.de</email>
      <organization>INTERMETA - Gesellschaft für Mehrwertdienste mbH</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>2</timezone>
    </developer>

    <developer>
      <name>Nathan Bubna</name>
      <id>nbubna</id>
      <email>nathan@esha.com</email>
      <organization>ESHA Research</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>
  </developers>

  <contributors/>

  <reports>
    <report>maven-license-plugin</report>
<!-- The link check report is not referenced from the site but useful to check whether a referenced link has been broken -->
    <report>maven-linkcheck-plugin</report>
  </reports>
</project>

