<!--
  ~ Copyright 2001-2006 The Apache Software Foundation.
  ~
  ~ Licensed 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.
  -->

<project>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-changelog-plugin</artifactId>
        <configuration>
          <type>date</type>
          <dates>
            <date>Feb 25, 2005</date>
          </dates>
          <dateFormat>yyyy-MM-dd</dateFormat>
          <basedir>${basedir}/src/main/java</basedir>
          <outputXML>changelog.xml</outputXML>
          <outputXMLExpiration>60</outputXMLExpiration>
          <outputEncoding>ISO-8859-1</outputEncoding>
          <scmUrl>scm://</scmUrl>
          <outputDirectory>site</outputDirectory>
          <offline>false</offline>
          <connectionType>connection</connectionType>
          <project implementation="org.apache.maven.changelog.stubs.MavenProjectStub"/>
          <settings implementation="org.apache.maven.changelog.stubs.SettingsStub"/>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
