<?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="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>
