<?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 also used by the maven-changes-plugin to generate the release notes.
Useful ways of finding items to add to this file are:

1.  Add items when you fix a bug or add a feature (this makes the 
release process easy :-).

2.  Do a JIRA search for tickets closed since the previous release.

3.  Use the report generated by the maven-changelog-plugin to see all
SVN commits. TBA how to use this with SVN.

To generate the release notes from this file:

mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nn]
then tweak the formatting if necessary 
and commit

The <action> type attribute can be add,update,fix,remove.
-->

<document xmlns="http://maven.apache.org/changes/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
    <properties>
        <title>Changes</title>
        <author email="dev@commons.apache.org">Apache Commons developers</author>
    </properties>

    <!-- NOTE: 
    The description below is specially formatted so as to improve the layout of the generated release notes:
    The parsing process removes all line feeds, replacing them with a single space.
    The Velocity template in resources/templates has been enhanced to replace pairs of adjacent spaces
    with a new-line in the release notes. (These spaces are ignored when displaying HTML).
    If the output is not quite correct, check for invisible trailing spaces!

    To suppress formatting of an action entry when generating release notes, add an empty date.
    This does not affect the HTML changes report (in any case dates are not displayed by default)
    
    N.B. The release notes template groups actions by type, and only extracts data for the current release.
    The changes report outputs actions in the order they appear in this file. 
     -->

    <body>
        <release version="39" date="TBA" description="Uses a new location assembly location; updates plugins; allows Java 8 builds to use animal-sniffer.">
            <action type="update">Update Compiler Plugin : 3.2 -> 3.3</action>
            <action type="update">Update Build Helper Plugin : 1.8 -> 1.9.1</action>
            <action type="update">Update Release Plugin : 2.5.1 -> 2.5.2</action>
            <action type="update">Update Javadoc Plugin : 2.10.2 -> 2.10.3</action>
            <action type="update">Update Jar Plugin : 2.5 -> 2.6</action>
            <action type="update">Drop the "trunks-proper" profile</action>
            <action type="update">Update animal-sniffer Plugin : 2.13 -> 2.14 (for Java7+ build profile)</action>
            <action type="update">Move assembly to standard location. src/main => src/assembly/src.xml</action>
            <action type="update">Update Jacoco Plugin : 0.7.4.201502262128 -> 0.7.5.201505241946</action>
        </release>

        <release version="38" date="2015-06-25" description="Fix bug in site Security link; update plugins">
            <!-- List each change individually so the changes HTML report is easier to read -->
            <action type="update">Fix URL for Security link</action>
            <action type="update">Update Assembly Plugin : 2.5.3 => 2.5.5</action>
            <action type="update">Update Cobertura Plugin : 2.6 => 2.7</action>
            <action type="update">Update Jacoco Plugin : 0.7.2 => 0.7.4</action>
            <action type="update">Update Javadoc Plugin : 2.10.1 => 2.10.2</action>
            <action type="update">Update Surefire Plugin : 2.18 => 2.18.1</action>
        </release>

        <release version="37" date="2015-01-28" description="Update plugins, add Animal Sniffer and site-basic profile">
            <!-- List each change individually so the changes HTML report is easier to read -->
            <action type="update">Update minimum Maven prerequisite (as defined by Findbugs) 3.0 -> 3.0.1</action>
            <action type="update">Update org.apache:apache 15 to 16 (nop for Commons: maven-compiler-plugin already contained source/target)</action>
            <action type="update">Update Maven Project Info Reports Plugin : 2.7 => 2.8</action>
            <action type="update">merged maven-3 profile into main body (Maven 2 is no longer supported)</action>
            <action type="add">Added Animal Sniffer profile (active by default)</action>
            <action type="update">renamed the profile jdk7-findbugs to jdk7-plugin-fix-version</action>
            <action type="add">Allow to configure dependency excludes of bundle-plugin with commons.osgi.excludeDependencies</action>
            <action type="add">Added property commons.changes.onlyCurrentVersion for changes plugin Jira report</action>
            <action type="update">Update GPG Plugin : 1.5 => 1.6</action>
            <action type="update">Update Antrun Plugin : 1.7 => 1.8</action>
            <action type="add">Allow changes Jira report maxEntries to be overridden (default 100)</action>
            <action type="add">Allow changes Jira report runOnlyAtExecutionRoot to be overridden</action>
            <action type="add">Added site-basic profile to allow quick generation of the basic site docs</action>
        </release>

        <release version="36" date="2014-12-21" description="Update plugins, fix release-notes profile.">
            <!-- List each change individually so the changes HTML report is easier to read -->
            <action type="update">Update maven-jxr-plugin 2.4 to 2.5</action>
            <action type="update">Update maven-surefire-plugin(s) 2.17 to 2.18</action>
            <action type="update">Update maven-assembly-plugin 2.5 to 2.5.1</action>
            <action type="update">Update maven-clean-plugin 2.6 to 2.6.1</action>
            <action type="update">Update commons.wagon-ssh.version 2.6 to 2.8</action>
            <action type="fix">Add announcementDirectory to release-notes profile.</action>
        </release>

        <release version="35" date="2014-10-22" description="Update plugins and maintenance">
            <!-- List each change individually so the changes HTML report is easier to read -->
            <action type="add">Add link to security page in general navigation section</action>
            <action type="add">Added java-1.9 profile</action>
            <action type="update">Suppress test Javadocs when building site</action>
            <action type="update">Suppress test Javadocs</action>
            <action type="update">Update JaCoCo to 0.7.2.201409121644</action>
            <action type="update">Update maven-compiler-plugin 3.1 to 3.2</action>
            <action type="update">Update maven-source-plugin 2.2.1 to 2.4</action>
            <action type="update">Update maven-site-plugin 3.3 to 3.4</action>
            <action type="update">Update maven-gpg-plugin 1.4 to 1.5</action>
            <action type="update">Update maven-jar-plugin 2.4 to 2.5</action>
            <action type="update">Update maven-release-plugin 2.4.2 to 2.5.1</action>
            <action type="update">Update maven-bundle-plugin 2.4.0 to 2.5.3</action>
            <action type="update">Update buildnumber-maven-plugin 1.2 to 1.3</action>
            <action type="update">Update wagon-ssh 2.3 to 2.6</action>
            <action type="update">Update maven-scm-publish-plugin 1.0 to 1.1</action>
            <action type="update">Update jdepend-maven-plugin 2.0-beta-2 to 2.0</action>
            <action type="update">Update apache-rat-plugin 0.10 to 0.11</action>
            <action type="update">Update maven-clean-plugin 2.5 to 2.6.</action>
            <action type="update">Update maven-changes-plugin 2.9 to 2.11</action>
            <action type="update">Update maven-deploy-plugin 2.8.1 to 2.8.2</action>
            <action type="update">Update maven-install-plugin 2.5.1 to 2.5.2</action>
            <action type="update">Update maven-javadic-plugin 2.9.1 to 2.10.1</action>
            <action type="update">Update apache 13 to 15</action>
            <action type="update">Add property commons.findbugs.version.</action>
        </release>

        <release version="34" date="2014-04-16" description="
The main changes in this release are:
  - Added Maven enforcer to ensure builds use Maven 3.0.0 or later
  - Surefire 2.16 to 2.17
  - scm-publish 1.0-beta to 1.0
  - added java-1.8 profile
">
            <!-- List each change individually so the changes HTML report is easier to read -->

            <action type="update">Added java-1.8 profile</action>
            <action type="update">maven-scm-publish-plugin      1.0-beta -> 1.0</action>
            <action type="update">maven-surefire-plugin(s)          2.16 -> 2.17</action>
            <action type="update">Added Maven enforcer to ensure builds use Maven 3.0.0 or later</action>

        </release>

        <release version="33" date="2014-02-14" description="
The main changes in this release are:
  - Fixed Jacoco configuration syntax
  - updated some plugins
">
            <!-- List each change individually so the changes HTML report is easier to read -->
             
            <action type="update">commons-skin                       3 -> 4</action>
            <action type="update">maven-deploy-plugin                2.7 -> 2.8.1</action>
            <action type="update">maven-jxr-plugin                   2.3 -> 2.4</action>
            <action type="update">maven-install-plugin               2.4 -> 2.5.1</action>
            <action type="update">maven-release-plugin             2.4.1 -> 2.4.2</action>
            <action type="update">maven-surefire-plugin(s)          2.15 -> 2.16</action>
            <action type="update">remote-resources-plugin            1.4 -> 1.5</action>

            <action type="update">apache-rat-plugin                  0.9 -> 0.10</action>
            <action type="update">clirr-maven-plugin                 2.5 -> 2.6.1</action>
            <action type="update">cobertura-maven-plugin           2.5.2 -> 2.6</action>
            
            <action type="update">jacoco-maven-plugin 0.6.3.201306030806 -> 0.6.4.201312101107</action>
            <action type="update">Fixed JaCoCo configuration - syntax changed completely between 0.6.2.x and 0.6.3.x</action>
            <!-- Note: the (major) syntax change is not documented AFAICT, and only the trunk docs are online for comparison. -->
            <action type="update">Add commons.compiler.version property so compiler plugin version can be overridden if necessary</action>
            <action type="update">Add source archive to Maven artifacts</action>
            </release>

        <release version="32" date="2013-07-01" description="
The main changes in this release are:
  - added fix for Javadoc vulnerability (CVE-2013-1571, VU#225657) MJAVADOC-370
  - updated some plugins
">
            <!-- List each change individually so the changes html report is easier to read -->
            <action type="update">maven-javadoc-plugin          2.9 -> 2.9.1</action>
        </release>

        <release version="31" date="2013-06-24" description="
The main changes in this release are:
  - dropped unused 'rc' profile
  - fixed the maven.compile[r] names
  - updated some plugins and the RAT excludes list
">
            <!-- List each change individually so the changes html report is easier to read -->
            <action type="update">Dropped "rc" profile as no longer relevant</action>
            <action type="update">maven-bundle-plugin              2.3.7 -> 2.4.0</action>
            <action type="update">maven-surefire[-report]-plugin  2.14.1 -> 2.15</action>
            <action type="fix" issue="COMMONSSITE-69">renamed properties maven.compile.* => maven.compiler.*</action>
            <action type="update">Exclude .checkstyle and .fbprefs from RAT check</action>
        </release>
        <release version="30" date="2013-05-28" description="
The main changes in this release are RAT configuration changes:
 - updated excludes: added .pmd and download_*.cgi
 - changed excludes so child POM excludes will be appended to the parent list
 - duplicated settings in build section so they apply to standalone invocations

Coverage tool:
 Made JaCoCo an optional profile
 Restored Cobertura as an optional profile
">
            <!-- List updates separately so the changes html report is easier to read -->
            <action type="update">cobertura-maven-plugin           2.5.2 reinstated</action>
            <action type="update">jacoco-maven-plugin  0.6.2.201302030002 -> 0.6.3.201306030806</action>
            <action type="update">rat-maven-plugin                   0.8 -> 0.9</action>
            <action type="update">maven-project-info-reports-plugin  2.6 -> 2.7</action>
        </release>
        <release version="29" date="2013-05-18" description="Replace Cobertura with JaCoCo; update plugin versions">
            <action type="update">cobertura-maven-plugin         2.5.2 -> removed</action>
            <action type="update">jacoco-maven-plugin                  -> 0.6.2.201302030002</action>
            <action type="update">maven-surefire-plugin          2.13  -> 2.14.1</action>
            <action type="update">maven-surefire-report-plugin   2.13  -> 2.14.1</action>
            <action type="update">maven-changes-plugin           2.8   -> 2.9</action>
            <action type="update">maven-compiler-plugin          3.0   -> 3.1</action>
            <action type="update">maven-release-plugin           2.3.2 -> 2.4.1</action>
            <action type="update">maven-site-plugin              3.2   -> 3.3</action>
            <action type="update" date="">
The main change is the replacement of Cobertura with JaCoCo for test
coverage analysis.  The former is not maintained anymore, has numerous
bugs and is extremely slow in some situations (typically generating
coverage reports for [math] took about 9 hours whereas standard tests
run in about 10 minutes). One important implication is that since
JaCoCo relies on setting an agent, it is triggered only if JDK used to
run the tests is at least Java 1.5 (this is automatically detected),
and it changes the argument line of surefire tests.  If a component
also needs to adapt the surefire command line, it must add the
property ${argLine} to the argument line in order to preserve JaCoCo
settings. An example for this is Apache Commons IO, where the
maven-surefire-plugin setting must read as (note the use of the
${argLine} property):

    &lt;plugins>
      &lt;plugin>
        &lt;groupId>org.apache.maven.plugins&lt;/groupId>
        &lt;artifactId>maven-surefire-plugin&lt;/artifactId>
        &lt;configuration>
          &lt;forkMode>pertest&lt;/forkMode>
          &lt;!-- limit memory size see IO-161 -->
          &lt;!-- the ${argLine} preserves jacoco agent settings (see (see https://github.com/jacoco/jacoco/issues/44) -->
          &lt;argLine>-Xmx25M ${argLine}&lt;/argLine>
          ...
        &lt;/configuration>
      &lt;/plugin>
      ...
    &lt;/plugins>
            </action>
        </release>
        <release version="28" date="2013-01-26" description="Update plugins">
            <action type="update">
            apache-parent-pom                  9      -> 13

            maven-surefire-plugin              2.12.3 -> 2.12.4
            maven-surefire-report-plugin       2.12.3 -> 2.12.4
            cobertura-maven-plugin             2.5.1  -> 2.5.2
            buildnumber-maven-plugin           1.1    -> 1.2 
            </action>
            <action type="update">
            Also changed, but omitted from changes section in released version:

            Added maven-scm-publish-plugin  1.0-beta-2
            Removed timestamp from Javadoc output
            Moved Cobertura from default to reporting profile
            Renamed module sanselan => imaging
            Added scm publishing properties
            </action>
        </release>
        <release version="27" date="2012-09-24" description="Update plugins">
            <action type="update">
            update maven-site-plugin to 3.1 in reporting section
            use properties for all reporting plugins to ensure consistency
            maven-changes-plugin: 2.7.1 => 2.8 (fixes MCHANGES-285 SAXException parsing JIRA XML from JIRA 5.1)
            maven-project-info-reports-plugin  2.5 -> 2.5.1
            maven-resources-plugin             2.5 -> 2.6
            maven-surefire-plugin              2.12.2 -> 2.12.3
            maven-surefire-report-plugin       2.12.2 -> 2.12.3
            </action>
        </release>
        <release version="26" date="2012-08-23" description="Update plugins">
            <action type="update">
            FELIX-3037 has been fixed so the profile java-1.5-detected is no longer needed
            (in fact it causes problems, because it reverts bndlib to a version that is missing some required new methods)
            </action>
            <action type="update">
            maven-changes-plugin: 2.6 => 2.7.1
            maven-clean-plugin: 2.4.1 => 2.5
            maven-compiler-plugin: 2.3.2 => 2.5.1
            maven-project-info-reports-plugin: 2.4 => 2.5
            maven-release-plugin: 2.2.2 => 2.3.2
            maven-remote-resources-plugin: 1.2.1 => 1.3
            maven-site-plugin: 3.0 => 3.1
            maven-source-plugin: 2.1.2 => 2.2
            maven-surefire-plugin: 2.12 => 2.12.2
            maven-surefire-report-plugin: 2.12 => 2.12.2
            org.codehaus.mojo:buildnumber-maven-plugin: 1.0 => 1.1
            </action>
        </release>
        <release version="25" date="2012-??-??" description="Update plugins">
            <action type="update">
            Updated various plugin versions:
            clirr-maven-plugin: 2.3 => 2.4
            clirr and RAT added to pluginManagement so can override the version from Apache POM
            Add changes and jira reports       
            </action>
        </release>
        <release version="24" date="2012-03-13" description="Update and add plugins">
            <action type="update">
            Updated various plugin versions:
            antrun: 1.6 => 1.7
            assembly: 2.2.1 => 2.3
            jar: 2.3.2 => 2.4
            release: 2.2.1 => 2.2.2
            remote-resources: override Apache pom 9 with 1.2.1
            commons-build: 1.3 => 1.4
            bundle: 2.3.5 => 2.3.7; removed workround for Java 1.5 as no longer necessary
            Added cobertura: 2.5.1 to reporting and buildManagement
            surefire: 2.9 => 2.12
            surefire-report: 2.9 => 2.12
            Allow override of surefire-report aggregate setting using property commons.surefire-report.aggregate
            javadoc: 2.8 => 2.8.1
            rat: 0.7 => 0.8
            wagon-ssh 1.0 => 2.2 (M3 only)
            Deleted "ci" profile (does not apply with Nexus)
            Add default project info reports: excluded license/plugins/plugin management
            Add tests.jar and test-sources.jar to deployed files
            </action>
        </release>
        <release version="23" date="2012-01-11" description="
The Maven3 site plugin has been updated to support ssh/scp for deployment

  The buildNumber plugin now defaults to using SVN CLI, and does not run if buildNumber.skip=true
  To use javasvn instead, use the profile: javasvn
">
            <action dev="ggregory" type="add">
            added java-1.7 profile
            </action>
            <action dev="ggregory" type="add">
            added ssh/scp support to maven-site-plugin in Maven3
            </action>
            <action dev="sebb" type="update" due-to="Olivier Lamy">
            moved buildNumber plugin to profile which is activated unless buildNumber.skip=true
            changed buildNumber plugin default provider to CLI; added 'javasvn' profile as override
            </action>
            <action dev="sebb" type="update">
            added aggregate:false to jxr plugin (aggregate is deprecated)
            </action>
            <action dev="sebb" type="update">
            updated modules list, added: bcel, functor, jcs, ognl
            </action>
        </release>
        <release version="22" date="2011-09-21" description="
Starting with version 22, the RAT plugin has changed Maven group and id,
 so any existing configuration needs to be updated.
 To fix component POMs, please change any occurrences of:
  &lt;groupId>org.codehaus.mojo&lt;/groupId>
  &lt;artifactId>rat-maven-plugin&lt;/artifactId>
 to the new values:
  &lt;groupId>org.apache.rat&lt;/groupId>
  &lt;artifactId>apache-rat-plugin&lt;/artifactId>
">
            <action dev="sebb" type="add">
            Add commons.release.version and commons.rc.version for use in releasing commons parent
            </action>
            <action dev="sebb" type="add">
            Add release-notes profile to generate RELEASE-NOTES.txt from changes.xml.
            Added changes.xml and template release-notes.vm
            </action>
            <action dev="sebb" type="add">
            Add pom description
            </action>
            <action dev="sebb" type="fix">
            Added workround for bundle plugin 2.3.5 on Java 1.5 - replace embedded bndlib with previous version
            </action>
            <action dev="sebb" type="add">
            Add buildnumber plugin and put build details into manifests.
            </action>
            <action dev="sebb" type="add">
            Add Clirr report for all components
            </action>
            <action dev="sebb" type="update">
            Update to site plugin 3.0 (usable by Maven 2 and Maven 3)
            </action>
            <action dev="sebb" type="fix">
            Fix resources and testResource overrides to include the default directories.
            Components which redefine these may no longer need to do so.
            </action>
            <action type="update">
            Update to latest releases of plugins.
            </action>
            <action dev="sebb" type="remove">
            Remove Maven IDEA plugin.
            </action>
            <action dev="sebb" type="update">
            Update to Apache RAT plugin, and enable use as standalone goal.
            </action>
            <action dev="ggregory" type="add">
            Add Javadoc link to Java EE.
            </action>
            
        </release>

    </body>
</document>
