<?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>Apache Commons Parent Release Notes</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="53" date="YYYY-MM-DD" description="TBD">
          <action type="add" dev="ggregory">Add versions-maven-plugin run for this build.</action>
          <action type="update" dev="ggregory">Update versions-maven-plugin 2.7 -> 2.8.1.</action>
          <action type="update" dev="ggregory">Update actions/checkout from v2.3.1 to v2.3.2 #15.</action>
          <action type="update" dev="ggregory" due-to="Dependabot">Update maven-project-info-reports-plugin from 3.1.0 to 3.1.1 #19.</action>
          <!-- UPDATES -->
          <action type="update" dev="ggregory">Update Jacoco from 0.8.5 to 0.8.6.</action>
          <action type="update" dev="ggregory" due-to="Dependabot">Update actions/setup-java from v1.4.0 to v1.4.2 #18.</action>
        </release>

        <release version="52" date="2020-07-30" description="Add support for Java 15.">
          <action type="update" dev="chtompki">Update maven-site-plugin version 3.8.2 -> 3.9.1.</action>
          <action type="add" dev="sebb">Align Javadoc version with java override profile</action>
          <action type="update" dev="ggregory">Update biz.aQute.bndlib version 5.1.0 -> 5.1.2, Java 15 support.</action>
          <action type="update" dev="ggregory">Update maven-bundle-plugin from 4.2.1 to 5.1.1, Java 15 support.</action>
          <action type="update" dev="ggregory">Update animal-sniffer-maven-plugin from 1.18 to 1.19.</action>
          <action type="update" dev="ggregory">Update build-helper-maven-plugin from 3.1.0 to 3.2.0.</action>
          <action type="update" dev="ggregory">Update commons.checkstyle-plugin.version from 3.1.0 to 3.1.1.</action>
        </release>

        <release version="51" date="2020-06-23" description="Fix incompatibilty issues with Java 7
 Add support for Java 13.
 Update various plugin versions.
        ">
            <action type="update" dev="ggregory">JApiCmp 0.14.1 -> 0.14.3.</action>
            <action type="update" dev="ggregory">maven-enforcer-plugin 3.0.0-M2 -> 3.0.0-M3.</action>
            <action type="update" dev="ggregory">maven-source-plugin 3.2.0 -> 3.2.1.</action>
            <action type="update" dev="ggregory">commons.spotbugs.version 3.1.6 -> 3.1.12.2.</action>             
            <action type="update" dev="ggregory">org.apache:apache 21 -> 23.</action>
            <action type="update" dev="ggregory">maven-javadoc-plugin 3.1.1 -> 3.2.0.</action>
            <action type="update" dev="ggregory">commons.pmd.version 3.12.0 -> 3.13.0.</action>
            <action type="update" dev="ggregory">Fix https://github.com/bndtools/bnd/issues/3903 seen with Commons CSV.</action>
            <action type="fix" dev="sebb">Allow Java7 builds: commons.animal-sniffer.version=1.17; biz.aQute.bndlib.version=3.5.0</action>
            <action type="fix" dev="sebb">PR#5: change &lt;docEncoding&gt; to &lt;docencoding&gt; for maven javadoc plugin.</action>
            <action type="update" dev="sebb">commons.project-info.version 3.0.0 -> 3.1.0</action>
            <action type="update" dev="ggregory">Add support for Java 13</action>
            <action type="update" dev="erans">Support NOTICE and LICENSE alongside .txt versions</action>
            <action type="update" dev="sebb">commons.wagon-ssh.version 3.0.0 -> 3.1.0</action>
            <action type="update" dev="sebb">biz.aQute.bndlib.version 5.0.1 -> 5.1.0</action>
            <action type="update" dev="sebb">bcel version 6.4.1 -> 6.5.0</action>
            <action type="update" dev="sebb">maven pre-requisite 3.0.5 -> 3.5.0</action>
            <action type="update" dev="sebb">commons.build-helper.version 3.0.0 -> 3.1.0</action>
            <action type="add" dev="sebb">Allow override of changes.announcementFile/announcementDirectory</action>
            <action type="update" dev="ggregory">maven-assembly-plugin 3.2.0 -> 3.3.0</action>
        </release>

        <release version="50" date="2019-12-17" description="Update site generation.

        Updates to commons-skin:4.2, fixes custom footer copyright notice and removes redundant site.xml head element.

        Removes jacoco aggregate reports and changes conditional japicmp plugin to require Java 8 and activate via opt-in behavior.

        Includes some plugins updates.
        ">
            <action type="update" dev="aherbert">site.xml: Removed custom head element. PrettyPrint functionality is loaded by commons-skin-4.2.</action>
            <action type="update" dev="aherbert">site.xml: commons-skin 4.1 -> 4.2</action>
            <action type="update" dev="aherbert">site.xml: Removed CDATA tag around the custom footer element</action>
            <action type="update" dev="aherbert">commons.wagon-ssh.version 3.3.3 -> 3.3.4</action>
            <action type="update" dev="aherbert">commons.assembly-plugin.version 3.1.1 -> 3.2.0</action>
            <action type="update" dev="aherbert">commons.source-plugin.version 3.1.0 -> 3.2.0</action>
            <action type="update" dev="aherbert">commons.jar-plugin.version 3.1.2 -> 3.2.0</action>
            <action type="update" dev="aherbert">jacoco-maven-plugin 0.8.4 -> 0.8.5</action>
            <action type="update" dev="aherbert">Move japicmp reporting section to the profile for opt-in behavior. Remove japicmp.skip flag used to skip the report.</action>
            <action type="update" dev="aherbert">Disable jacoco non-aggregate reports.</action>
            <action type="update" dev="ggregory">Update site build from Apache Commons BCEL 6.3.1 to 6.4.1.</action>
        </release>

        <release version="49" date="2019-09-10" description="Release version 49">
            <action type="update" dev="chtompki">maven-site-plugin 3.7.1 -> 3.8.2</action>
            <action type="update" dev="chtompki">commons.felix.version=maven-bundle-plugin 4.2.0 -> 4.2.1</action>
            <action type="update" dev="chtompki">commons-build-plugin 1.10 -> 1.11</action>
            <action type="update" dev="ggregory">commons-release-plugin 1.6 -> 1.7</action>
            <action type="update" dev="ggregory">jacoco-maven-plugin 0.8.3 -> 0.8.4</action>
            <action type="fix" dev="sebb">Downdate felix plugin to work on Java 7</action>
            <action type="update" dev="ggregory">Update maven-project-info-reports-plugin's Apache Commons BCEL from 6.3 to 6.3.1.</action>
            <action type="update" dev="ggregory">japicmp-maven-plugin 0.13.0 -> 0.13.1</action>
            <action type="update" dev="ggregory">maven-bundle-plugin 4.1.0 -> 4.2.0</action>
            <action type="fix" dev="ggregory">commons.scmPubUrl was not built properly, e.g. using 'pool' instead of 'commons-pool'</action>
            <action type="update" dev="ggregory">japicmp-maven-plugin 0.13.1 -> 0.14.0</action>
            <action type="update" dev="ggregory">japicmp-maven-plugin should not break builds on source incompatible changes by default.</action>
            <action type="update" dev="ggregory">commons.compiler.version 3.8.0 ->3.8.1.</action>
            <action type="update" dev="ggregory">Add properties commons.javadoc6.java.link through commons.javadoc12.java.link</action>
            <action type="update" dev="ggregory">Add properties commons.javadoc.javaee5.link through commons.javadoc.javaee7.link</action>
            <action type="update" dev="ggregory">Maven Surefire and Failsafe plugins 2.22.1 -> 2.22.2</action>
            <action type="update" dev="ggregory">commons.jar-plugin.version 3.1.1 -> 3.1.2</action>
            <action type="update" dev="ggregory">Add profile java-1.12</action>
            <action type="add" dev="ggregory">Add commons.pmd.version</action>
            <action type="update" dev="ggregory">maven-source-plugin 3.0.1 -> 3.1.0</action>
            <action type="update" dev="ggregory">japicmp-maven-plugin 0.14.0 -> 0.14.1</action>
            <action type="add" dev="ggregory">Add commons.checkstyle-plugin.version</action>
            <action type="add" dev="ggregory">Add property commons.release.4.desc (see Apache Commons Pool.)</action>
            <action type="add" dev="ggregory">Add property commons.release.4.binary.suffix (see Apache Commons Pool.)</action>
            <action type="update" dev="ggregory">commons.wagon-ssh.version 3.3.2 -> 3.3.3</action>
            <action type="update" dev="ggregory">commons.javadoc.version 3.1.0 -> 3.1.1</action>
            <action type="update" dev="ggregory">Add missing source config for Javadoc plugin.</action>
            <action type="update" dev="ggregory">Adding Java 8 default methods should not break binary compatibility.</action>
            <action type="update" dev="ggregory">Set Javadoc source option to Maven compiler source setting.</action>
            <action type="update" dev="ggregory">jacoco-maven-plugin 0.8.3 -> 0.8.4.</action>
            <action type="update" dev="ggregory">commons-release-plugin 1.6 -> 1.7.</action>
            <action type="update" dev="ggregory">animal-sniffer-maven-plugin 1.17 -> 1.18.</action>
        </release>

        <release version="48" date="2019-03-20" description="Release version 48">
            <action type="update" dev="chtompki">Run "apache-rat:check" as part of "mvn validate"</action>
            <action type="fix" dev="chtompki">Revert revert change in commons.scmPubUrl in Parent 47, use commons.packageId for osgi</action>
            <action type="update">commons.build-plugin.version: 1.9 -> 1.10</action>
            <action type="update">commons.release-plugin.version: 1.5 -> 1.6</action>
            <action type="update">commons.spotbugs.version: 3.1.3 -> 3.1.6</action>
            <action type="update">japicmp-maven-plugin: 0.12.0 -> 0.13.0</action>
            <action issue="COMMONSSITE-124" type="fix" dev="britter">Revert change in commons.scmPubUrl in Parent 47</action>
            <action type="update">Update parent from org.apache:apache 19 to 20.</action>
            <action type="update">maven-compiler-plugin 3.7.0 -> 3.8.0</action>
            <action type="fix">re-enabled japicmp and introduced japicmp.skip property that
                controls whether japicmp reports are run. It is disabled by
                default and enabled via a special profile enabled by the
                presence of the file src/site/resources/profile.japicmp
                - org.apache.felix:maven-bundle-plugin 3.5.0 -> 3.5.1</action>
            <action type="update">org.apache.felix:maven-bundle-plugin 3.5.0 -> 3.5.1</action>
            <action type="update">org.jacoco:jacoco-maven-plugin 0.8.1 -> 0.8.3 (Java 11)</action>
            <action type="update">org.apache.maven.wagon:wagon-ssh 3.1.0 -> 3.2.0</action>
            <action type="update">maven-surefire-plugin 2.22.0 -> 2.22.1</action>
            <action type="update">maven-surefire-report-plugin 2.22.0 -> 2.22.1</action>
            <action type="update">maven-failsafe-plugin 2.22.0 -> 2.22.1</action>
            <action type="update">versions-maven-plugin 2.5 -> 2.7</action>
            <action type="update">org.apache.felix:maven-bundle-plugin 3.5.1 -> 4.1.0</action>
            <action type="update">maven-jxr-plugin 2.5 -> 3.0.0</action>
            <action type="update">org.apache.rat:apache-rat-plugin 0.12 -> 0.13</action>
            <action type="update">commons.wagon-ssh.version 3.2.0 -> 3.3.1</action>
            <action type="update">maven-assembly-plugin 3.1.0 -> 3.1.1</action>
            <action type="update">commons.jar-plugin.version 3.1.0 -> 3.1.1</action>
            <action type="update">commons.animal-sniffer.version 1.16 -> 1.17</action>
            <action type="update">org.apache.bcel:bcel 6.2 -> 6.3</action>
            <action type="update">commons-release-plugin 1.4 -> 1.5</action>
            <action type="update">org.apache.maven.wagon:wagon-ssh 3.3.1 -> 3.3.2</action>
            <action type="update">org.apache.maven.plugins:maven-javadoc-plugin 3.0.1 -> 3.1.0</action>
        </release>

        <release version="47" date="2018-07-02" description="Release version 47">
            <action type="update">Set the version of Apache Commons BCEL used by maven-project-info-reports-plugin to avoid
                "org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19"</action>
            <action type="update">Allows JApiCmp's ignoreMissingClasses parameter to be easily overridable with the property commons.japicmp.ignoreMissingClasses.</action>
            <action type="update">japicmp-maven-plugin 0.11.1 -> 0.12.0</action>
            <action type="add">New properties: commons.distSvnStagingUrl, commons.releaseManagerName, commons.releaseManagerKey</action>
            <action type="update">maven-javadoc-plugin 3.0.0 -> 3.0.1 (Java 10 compatibility)</action>
            <action type="update">maven-site-plugin 3.7.0 -> 3.7.1.</action>
            <action type="update">org.apache.maven.wagon:wagon-ssh 3.0.0 -> 3.1.0</action>
            <action type="update">maven-surefire-report-plugin 2.21.0 -> 2.22.0</action>
            <action type="update">maven-enforcer-plugin 3.0.0-M1 -> 3.0.0-M2</action>
            <action type="update">commons-release-plugin 1.2 -> 1.3</action>
            <action type="update">commons-build-plugin 1.8 -> 1.9</action>
            <action type="update">maven-surefire-plugin 2.21.0 -> 2.22.0</action>
            <action type="update">maven-project-info-reports-plugin 2.9 -> 3.0.0</action>
        </release>

        <release version="46" date="2018-04-07" description="Plugin updates

        Notes on japicmp usage in 46
        ----------------------------
        For japicmp to work when running 'mvn site', we must first run package
        because japicmp needs a built artifact to which to compare the previous
        version. Thus, we run 'mvn package site' to get an appropriate japicmp
        report.
        ">
            <action type="update">japicmp-maven-plugin 0.11.0 -> 0.11.1</action>
            <action type="update">maven-surefire-report-plugin 2.20.1 -> 2.21.0</action>
            <action type="add">Add java-1.10 profile</action>
            <action type="add">Add java-1.11 profile</action>
            <action type="update">jacoco-maven-plugin 0.8.0 -> 0.8.1</action>
            <action type="update">commons-build-plugin 1.7 -> 1.8</action>
            <action type="update">commons-release-plugin 1.1 -> 1.2</action>
            <action type="update">japicmp-maven-plugin: oldVersionPattern=\d+\.\d+\.\d*</action>
            <action type="update">maven-assembly-plugin: 3.0.0 -> 3.1.0</action>
            <action type="remove">Prerequisites tag; should only be used for maven-plugins, using maven-enforcer-plugin instead.</action>
        </release>

        <release version="45" date="2018-03-12" description="Changing location of commons-release-plugin">
            <action type="update">Rearranging plugin order in -Prelease, removing commons-release-plugin from build>pluginManagement</action>
        </release>

        <release version="44" date="2018-03-08" description="Plugin Updates and add new commons-release-plugin

        Notes on Building version 44.
        -----------------------------
        When building, because of an issue with japicmp, we have an erroneous non-failing stacktrace
        that occurs. Specifically, we see:

        [warn] No new version specified and file './commons-parent/pom.xml' of artifact could not be opened as
              jar archive: error in opening zip file
        java.util.zip.ZipException: error in opening zip file

        mainly caused by an error in
        japicmp.maven.JApiCmpMojo.populateArchivesListsFromParameters(JApiCmpMojo.java:341).

        We have asked for this to be addressed in the github issue: https://github.com/siom79/japicmp/issues/195
        ">
            <action type="add">new profile module-name to add 'Automatic-Module-Name' entry to the manifest</action>
            <action type="update">felix:maven-bundle-plugin 3.4.0 -> 3.5.0.</action>
            <action type="update">build artifacts -test.jar, -sources.jar and -test-sources.jar always, not only at release time</action>
            <action type="update">maven-enforcer-plugin set version to 3.0.0-M1 and update Maven requirement from 3.0.0 to 3.0.5 (the latest 3.0.x.)</action>
            <action type="update">jacoco-maven-plugin 0.7.9 -> 0.8.0.</action>
            <action type="update">Fix japicmp config: add to reporting section and define ignoreMissingNewVersion explicitly</action>
            <action type="update">org.apache:apache 18 -> 19</action>
            <action type="add">COMMONSSITE-105: Add commons-release-plugin version 1.1</action>
            <action type="add">COMMONSSITE-106: Add spotbugs-maven-plugin version 3.1.3</action>
            <action type="update">maven-surefire-plugin 2.20.1 -> 2.21.0</action>
            <action type="update">maven-failsafe-plugin 2.20.1 -> 2.21.0</action>
        </release>

        <release version="43" date="2018-01-02" description="Updates plugins and generally requires Java 7.">
            <action type="update">maven-compiler-plugin 3.6.1 -> 3.6.2.</action>
            <action type="update">maven-compiler-plugin 3.6.2 -> 3.7.0.</action>
            <action type="update">jacoco-maven-plugin 0.7.7.201606060606 -> 0.7.9.</action>
            <action type="update">maven-javadoc-plugin 2.10.4 -> 3.0.0 (Java 9 compatibility.)</action>
            <action type="update">Update japicmp 0.9.3 -> 0.10.0.</action>
            <action type="update">animal-sniffer-maven-plugin 1.15 -> 1.16.</action>
            <action type="update">commons.findbugs.version 3.0.3 -> 3.0.5 (requires Java 7.)</action>
            <action type="update">commons.clirr.version 2.7 -> 2.8.</action>
            <action type="update">maven-surefire-plugin 2.19.1 -> 2.20.1.</action>
            <action type="update">Add maven-failsafe-plugin 2.20.1 (to along with surefire.)</action>
            <action type="update">felix:maven-bundle-plugin 3.0.1 -> 3.4.0 (requires Java 7.</action>
            <action type="update">versions-maven-plugin 2.3 -> 2.5.</action>
            <action type="update">japicmp-maven-plugin 0.10.0 -> 0.11.0.</action>
            <action type="update">build-helper-maven-plugin 1.10 -> 3.0.0 (requires Maven 3 and Java 7.)</action>
            <action type="update">wagon-ssh 2.10 -> 3.0.0.</action>
            <action type="update">maven-site-plugin 3.6 -> 3.7 (fixes Java 9 builds; for migrating from 3.4 to 3.5.1, see https://maven.apache.org/components/plugins/maven-site-plugin/migrate.html)</action>
        </release>

        <release version="42" date="2016-12-29" description="Updates plugins">
            <action type="update">maven-site-plugin 3.4 -> 3.6 (for migrating from 3.4 to 3.5.1, see https://maven.apache.org/components/plugins/maven-site-plugin/migrate.html)</action>
            <action type="update">jacoco-maven-plugin : 0.7.6.201602180812 -> 0.7.7.201606060606</action>
            <action type="update">commons-build-plugin : 1.6 -> 1.7</action>
            <action type="update">maven-changes-plugin : 2.12 -> 2.12.1</action>
            <action type="update">Update japicmp: 0.8.0 -> 0.9.1</action>
            <action type="update">maven-compiler-plugin : 3.5.1 -> 3.6.0</action>
            <action type="update">japicmp plugin no longer fail on "mvn site" (it requires target/*jar), use "mvn package site -Pjapicmp" to include its report</action>
            <action type="update">japicmp-maven-plugin : 0.8.0 -> 0.9.3</action>
            <action type="add">new profiles to run coveralls coverage
            reports via Travis using Jacoco or Cobertura respectively</action>
            <action type="update">new property
            commons.japicmp.breakBuildOnBinaryIncompatibleModifications
            controls the breakBuildOnBinaryIncompatibleModifications
            setting of japicmp</action>
        </release>

        <release version="41" date="2016-08-15" description="Updates plugins and adds source compatibility profiles">
            <action type="update">COMMONSSITE-89 - support both clirr and japicmp
Clirr report must now be explicitly enabled using src/site/resources/profile.clirr file or -Pclirr option</action>
            <action type="update">maven-source-plugin 3.0.0 -> 3.0.1</action>
            <action type="update">commons.rat.version 0.11 -> 0.12</action>
            <action type="update">maven-javadoc-plugin 2.10.3 -> 2.10.4</action>
            <action type="update">RAT: Exclude Eclipse local files and folders</action>
            <action type="update">Changed ciManagement to Jenkins builds.apache.org</action>
            <action type="update">Update Apache parent: 17 -> 18</action>
        </release>

        <release version="40" date="2016-04-30" description="Updates plugins and parent; fixes COMMONSSITE-87 and COMMONSSITE-82.
N.B. The assembly plugin now runs in the verify phase (it was previously run in the package phase). See COMMONSSITE-87.
 This allows child poms to create additional jars to be added to the assembly.
 This will affect child poms that rely on the assembly occurring in the package phase.
 They will need to be amended to use the verify phase instead.">
            <action type="update">Update Apache Parent POM : 16 -> 17</action>
            <action type="update">COMMONSSITE-87 - ensure assembly plugin runs after all package phase plugins</action>
            <action type="update">COMMONSSITE-82 - use Commons Skin 4.1 (site.xml)</action>
            <action type="update">Require minimum of Maven 3.0.5</action>
            <action type="update">maven-assembly-plugin : 2.5.5 -> 2.6</action>
            <action type="update">maven-changes-plugin : 2.11 -> 2.12</action>
            <action type="update">maven-clean-plugin : 2.6.1 -> 3.0.0</action>
            <action type="update">maven-compiler-plugin : 3.3 -> 3.5.1</action>
            <action type="update">maven-enforcer-plugin : 1.3.1 -> 1.4.1</action>
            <action type="update">maven-source-plugin : 2.4 -> 3.0.0</action>
            <action type="update">maven-surefire-plugin : 2.18.1 -> 2.19.1</action>
            <action type="update">maven-project-info-reports-plugin : 2.8 -> 2.9</action>
            <action type="update">maven-release-plugin : 2.5.2 -> 2.5.3</action>
            <action type="update">animal-sniffer-maven-plugin : 1.11 -> 1.15</action>
            <action type="update">build-helper-maven-plugin : 1.9.1 -> 1.10</action>
            <action type="update">buildnumber-maven-plugin 1.3 -> 1.4 (supports git SCM now)</action>
            <action type="update">clirr-maven-plugin : 2.6.1 -> 2.7</action>
            <action type="update">commons-build-plugin : 1.4 -> 1.6</action>
            <action type="update">felix:maven-bundle-plugin : 2.5.3 -> 3.0.0</action>
            <action type="update">findbugs-maven-plugin : 3.0.0 -> 3.0.3</action>
            <action type="update">jacoco-maven-plugin : 0.7.5.201505241946 -> 0.7.6.201602180812</action>
            <action type="update">wagon-ssh : 2.8 -> 2.10</action>
        </release>

        <release version="39" date="2015-09-07" 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>
