aboutsummaryrefslogtreecommitdiff
path: root/src/site/resources
diff options
context:
space:
mode:
Diffstat (limited to 'src/site/resources')
-rw-r--r--src/site/resources/.htaccess16
-rw-r--r--src/site/resources/checkstyle/checkstyle-suppressions.xml27
-rw-r--r--src/site/resources/checkstyle/checkstyle.xml60
-rwxr-xr-xsrc/site/resources/download_lang.cgi4
-rw-r--r--src/site/resources/images/logo.pngbin0 -> 11862 bytes
-rw-r--r--src/site/resources/lang2-lang3-clirr-report.html265
-rw-r--r--src/site/resources/profile.jacoco0
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-1.0.1.txt63
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-1.0.txt161
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-2.0.txt676
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-2.1.txt150
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-2.2.txt127
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-2.3.txt105
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-2.4.txt139
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-2.5.txt98
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-2.6.txt74
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.0.1.txt57
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.0.txt170
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.1.txt55
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.10.txt121
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.2.1.txt417
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.2.txt405
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.3.1.txt496
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.3.2.txt509
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.3.txt482
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.4.txt642
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.5.txt940
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.6.txt1124
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.7.txt1176
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.8.1.txt1270
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.8.txt1237
-rw-r--r--src/site/resources/release-notes/RELEASE-NOTES-3.9.txt1293
32 files changed, 12359 insertions, 0 deletions
diff --git a/src/site/resources/.htaccess b/src/site/resources/.htaccess
new file mode 100644
index 000000000..750861987
--- /dev/null
+++ b/src/site/resources/.htaccess
@@ -0,0 +1,16 @@
+# 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.
+
+AddCharset utf-8 .txt .html
diff --git a/src/site/resources/checkstyle/checkstyle-suppressions.xml b/src/site/resources/checkstyle/checkstyle-suppressions.xml
new file mode 100644
index 000000000..e62645c4f
--- /dev/null
+++ b/src/site/resources/checkstyle/checkstyle-suppressions.xml
@@ -0,0 +1,27 @@
+<?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.
+-->
+<!DOCTYPE suppressions PUBLIC "-//Checkstyle//DTD SuppressionFilter Configuration 1.0//EN" "https://checkstyle.org/dtds/suppressions_1_0.dtd">
+<suppressions>
+ <suppress checks="JavadocMethod" files=".*[/\\]test[/\\].*"/>
+ <suppress checks="JavadocPackage" files=".*[/\\]test[/\\].*"/>
+ <!-- exclude generated JMH classes from all checks -->
+ <suppress checks="[a-zA-Z0-9]*" files=".*[/\\]generated-test-sources[/\\].*"/>
+ <suppress checks="RedundantModifier" files="ConstructorUtilsTest" lines="0-99999"/>
+ <!-- Windows-only workaround -->
+ <suppress checks="NewlineAtEndOfFile" files="target[/\\]maven-archiver[/\\]pom.properties"/>
+</suppressions>
diff --git a/src/site/resources/checkstyle/checkstyle.xml b/src/site/resources/checkstyle/checkstyle.xml
new file mode 100644
index 000000000..ea572b9ed
--- /dev/null
+++ b/src/site/resources/checkstyle/checkstyle.xml
@@ -0,0 +1,60 @@
+<?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.
+-->
+
+<!DOCTYPE module PUBLIC
+ "-//Checkstyle//DTD Checkstyle Configuration 1.2//EN"
+ "https://checkstyle.org/dtds/configuration_1_2.dtd">
+
+<!-- Apache Commons Lang customization of default Checkstyle behavior -->
+<module name="Checker">
+ <property name="localeLanguage" value="en"/>
+ <module name="JavadocPackage"/>
+ <module name="NewlineAtEndOfFile">
+ <property name="lineSeparator" value="lf" />
+ </module>
+ <module name="FileTabCharacter">
+ <property name="fileExtensions" value="java,xml"/>
+ </module>
+ <module name="RegexpSingleline">
+ <!-- \s matches whitespace character, $ matches end of line. -->
+ <property name="format" value="\s+$"/>
+ <property name="message" value="Line has trailing spaces."/>
+ </module>
+ <module name="SuppressionFilter">
+ <property name="file" value="src/site/resources/checkstyle/checkstyle-suppressions.xml"/>
+ </module>
+ <module name="TreeWalker">
+ <module name="AvoidStarImport"/>
+ <module name="IllegalImport"/>
+ <module name="RedundantImport"/>
+ <module name="UnusedImports"/>
+ <module name="NeedBraces"/>
+ <module name="JavadocMethod">
+ <property name="accessModifiers" value="public" />
+ </module>
+ <module name="ModifierOrder"/>
+ <module name="RedundantModifier"/>
+ <module name="UpperEll" />
+ <module name="LeftCurly"/>
+ <module name="NeedBraces"/>
+ <module name="RightCurly"/>
+ <module name="GenericWhitespace"/>
+ <module name="WhitespaceAfter"/>
+ <module name="NoWhitespaceBefore"/>
+ </module>
+</module>
diff --git a/src/site/resources/download_lang.cgi b/src/site/resources/download_lang.cgi
new file mode 100755
index 000000000..495cde12d
--- /dev/null
+++ b/src/site/resources/download_lang.cgi
@@ -0,0 +1,4 @@
+#!/bin/sh
+# Just call the standard mirrors.cgi script. It will use download.html
+# as the input template.
+exec /www/www.apache.org/dyn/mirrors/mirrors.cgi $* \ No newline at end of file
diff --git a/src/site/resources/images/logo.png b/src/site/resources/images/logo.png
new file mode 100644
index 000000000..847238bc6
--- /dev/null
+++ b/src/site/resources/images/logo.png
Binary files differ
diff --git a/src/site/resources/lang2-lang3-clirr-report.html b/src/site/resources/lang2-lang3-clirr-report.html
new file mode 100644
index 000000000..783077600
--- /dev/null
+++ b/src/site/resources/lang2-lang3-clirr-report.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+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.
+-->
+<!-- Generated by Apache Maven Doxia at Jul 13, 2011 ( $Revision: 1080083 $ ) -->
+<!-- $HeadURL: https://svn.apache.org/repos/asf/commons/proper/commons-skin/trunk/src/main/resources/META-INF/maven/site.vm $ -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>Lang - Clirr Results</title>
+ <style type="text/css" media="all">
+ @import url("./css/maven-base.css");
+ @import url("./css/maven-theme.css");
+ @import url("./css/site.css");
+ </style>
+ <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+ <meta name="Date-Revision-yyyymmdd" content="20110713" />
+ <meta http-equiv="Content-Language" content="en" />
+
+<link rel="stylesheet" type="text/css" href="./css/prettify.css" media="all"/>
+<script src="./js/prettify.js" type="text/javascript"></script>
+<script type="text/javascript">window.onload=function() {
+ prettyPrint();
+ }</script>
+ </head>
+ <body class="composite">
+ <div id="banner">
+ <div id="bannerLeft">
+ <a href="https://commons.apache.org/" title="Apache Commons logo">
+ <img src="./images/commons-logo.png" alt="Apache Commons logo"/>
+ </a>
+ </div><!-- id="bannerLeft" -->
+ <div id="bannerRight">
+ <a href="index.html">
+ <img src="images/logo.png" alt="Commons Lang"/>
+ </a>
+ </div><!-- id="bannerRight" -->
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+ <div class="xleft">
+ <span id="publishDate">Last Published: 13 July 2011</span>
+ &nbsp;| <span id="projectVersion">Version: 3.0</span>
+ </div>
+ <div class="xright"> <a href="https://www.apachecon.com/" class="externalLink" title="ApacheCon">ApacheCon</a>
+ |
+ <a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a>
+ |
+ <a href="../" title="Commons">Commons</a>
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+ <h5>Lang</h5>
+ <ul>
+ <li class="none">
+ <a href="index.html" title="Overview">Overview</a>
+ </li>
+ <li class="none">
+ <a href="download_lang.cgi" title="Download">Download</a>
+ </li>
+ <li class="none">
+ <a href="userguide.html" title="Users guide">Users guide</a>
+ </li>
+ <li class="none">
+ <a href="changes-report.html" title="Release History">Release History</a>
+ </li>
+ <li class="none">
+ <a href="api-release/index.html" title="Javadoc (3.0 release)">Javadoc (3.0 release)</a>
+ </li>
+ </ul>
+ <h5>Development</h5>
+ <ul>
+ <li class="none">
+ <a href="building.html" title="Building">Building</a>
+ </li>
+ <li class="none">
+ <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+ </li>
+ <li class="none">
+ <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+ </li>
+ <li class="none">
+ <a href="proposal.html" title="Proposal">Proposal</a>
+ </li>
+ <li class="none">
+ <a href="developerguide.html" title="Developer guide">Developer guide</a>
+ </li>
+ <li class="none">
+ <a href="scm.html" title="Source Repository">Source Repository</a>
+ </li>
+ <li class="none">
+ <a href="apidocs/index.html" title="Javadoc (SVN latest)">Javadoc (SVN latest)</a>
+ </li>
+ </ul>
+ <h5>Project Documentation</h5>
+ <ul>
+ <li class="collapsed">
+ <a href="project-info.html" title="Project Information">Project Information</a>
+ </li>
+ <li class="expanded">
+ <a href="project-reports.html" title="Project Reports">Project Reports</a>
+ <ul>
+ <li class="none">
+ <a href="changes-report.html" title="Changes Report">Changes Report</a>
+ </li>
+ <li class="none">
+ <a href="checkstyle.html" title="Checkstyle">Checkstyle</a>
+ </li>
+ <li class="none">
+ <strong>Clirr</strong>
+ </li>
+ <li class="none">
+ <a href="cobertura/index.html" title="Cobertura Test Coverage">Cobertura Test Coverage</a>
+ </li>
+ <li class="none">
+ <a href="cpd.html" title="CPD Report">CPD Report</a>
+ </li>
+ <li class="none">
+ <a href="findbugs.html" title="FindBugs Report">FindBugs Report</a>
+ </li>
+ <li class="none">
+ <a href="apidocs/index.html" title="Javadocs">Javadocs</a>
+ </li>
+ <li class="none">
+ <a href="javancss.html" title="JavaNCSS Report">JavaNCSS Report</a>
+ </li>
+ <li class="none">
+ <a href="jdepend-report.html" title="JDepend">JDepend</a>
+ </li>
+ <li class="none">
+ <a href="pmd.html" title="PMD Report">PMD Report</a>
+ </li>
+ <li class="none">
+ <a href="rat-report.html" title="RAT Report">RAT Report</a>
+ </li>
+ <li class="none">
+ <a href="xref/index.html" title="Source Xref">Source Xref</a>
+ </li>
+ <li class="none">
+ <a href="surefire-report.html" title="Surefire Report">Surefire Report</a>
+ </li>
+ <li class="none">
+ <a href="taglist.html" title="Tag List">Tag List</a>
+ </li>
+ <li class="none">
+ <a href="testapidocs/index.html" title="Test Javadocs">Test Javadocs</a>
+ </li>
+ <li class="none">
+ <a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <h5>Commons</h5>
+ <ul>
+ <li class="none">
+ <a href="../" title="Home">Home</a>
+ </li>
+ <li class="none">
+ <a href="https://www.apache.org/licenses/" class="externalLink" title="License">License</a>
+ </li>
+ <li class="collapsed">
+ <a href="../components.html" title="Components">Components</a>
+ </li>
+ <li class="collapsed">
+ <a href="../sandbox/index.html" title="Sandbox">Sandbox</a>
+ </li>
+ <li class="collapsed">
+ <a href="../dormant/index.html" title="Dormant">Dormant</a>
+ </li>
+ </ul>
+ <h5>General Information</h5>
+ <ul>
+ <li class="none">
+ <a href="../volunteering.html" title="Volunteering">Volunteering</a>
+ </li>
+ <li class="none">
+ <a href="../patches.html" title="Contributing Patches">Contributing Patches</a>
+ </li>
+ <li class="none">
+ <a href="../building.html" title="Building Components">Building Components</a>
+ </li>
+ <li class="none">
+ <a href="../releases/index.html" title="Releasing Components">Releasing Components</a>
+ </li>
+ <li class="none">
+ <a href="https://cwiki.apache.org/confluence/display/commons/FrontPage" class="externalLink" title="Wiki">Wiki</a>
+ </li>
+ </ul>
+ <h5>ASF</h5>
+ <ul>
+ <li class="none">
+ <a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How the ASF works">How the ASF works</a>
+ </li>
+ <li class="none">
+ <a href="https://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">Get Involved</a>
+ </li>
+ <li class="none">
+ <a href="https://www.apache.org/dev/" class="externalLink" title="Developer Resources">Developer Resources</a>
+ </li>
+ <li class="none">
+ <a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a>
+ </li>
+ <li class="none">
+ <a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
+ </li>
+ </ul>
+ <a href="https://apachecon.com/" title="ApacheCon" class="poweredBy">
+ <img class="poweredBy" alt="ApacheCon" src="https://www.apache.org/events/current-event-125x125.png" />
+ </a>
+ <a href="https://maven.apache.org/" title="Maven" class="poweredBy">
+ <img class="poweredBy" alt="Maven" src="https://maven.apache.org/images/logos/maven-feather.png" />
+ </a>
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+ <div class="section"><h2>Clirr Results<a name="Clirr_Results"></a></h2><p>The following document contains the results of <a class="externalLink" href="http://clirr.sourceforge.net/">Clirr</a>.</p><ul><li>Current Version: 3.0</li><li>Comparison Version: (2.6,3.0)</li></ul><div class="section"><h2>Summary<a name="Summary"></a></h2><table border="0" class="bodyTable"><tr class="a"><th>Severity</th><th>Number</th></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" />&#160;Error</td><td>268</td></tr><tr class="a"><td><img alt="Warning" src="images/icon_warning_sml.gif" />&#160;Warning</td><td>0</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" />&#160;Info</td><td>146</td></tr></table></div><div class="section"><h2>Details<a name="Details"></a></h2><table border="0" class="bodyTable"><tr class="a"><th>Severity</th><th>Message</th><th>Class</th><th>Method / Field</th></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.Boolean toBooleanObject(boolean)' has been removed</td><td><a href="./xref/org/apache/commons/lang/BooleanUtils.html">org.apache.commons.lang.BooleanUtils</a></td><td>public java.lang.Boolean toBooleanObject(boolean)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Decreased visibility of class from public to package</td><td><a href="./xref/org/apache/commons/lang/CharRange.html">org.apache.commons.lang.CharRange</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'protected CharSet(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/CharSet.html">org.apache.commons.lang.CharSet</a></td><td>protected CharSet(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Accessibility of method 'public org.apache.commons.lang.CharRange[] getCharRanges()' has been decreased from public to package</td><td><a href="./xref/org/apache/commons/lang/CharSet.html">org.apache.commons.lang.CharSet</a></td><td>public org.apache.commons.lang.CharRange[] getCharRanges()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public org.apache.commons.lang.CharSet getInstance(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/CharSet.html">org.apache.commons.lang.CharSet</a></td><td>public org.apache.commons.lang.CharSet getInstance(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public int count(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/CharSetUtils.html">org.apache.commons.lang.CharSetUtils</a></td><td>public int count(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String delete(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/CharSetUtils.html">org.apache.commons.lang.CharSetUtils</a></td><td>public java.lang.String delete(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public org.apache.commons.lang.CharSet evaluateSet(java.lang.String[])' has been removed</td><td><a href="./xref/org/apache/commons/lang/CharSetUtils.html">org.apache.commons.lang.CharSetUtils</a></td><td>public org.apache.commons.lang.CharSet evaluateSet(java.lang.String[])</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String keep(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/CharSetUtils.html">org.apache.commons.lang.CharSetUtils</a></td><td>public java.lang.String keep(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String squeeze(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/CharSetUtils.html">org.apache.commons.lang.CharSetUtils</a></td><td>public java.lang.String squeeze(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String translate(java.lang.String, java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/CharSetUtils.html">org.apache.commons.lang.CharSetUtils</a></td><td>public java.lang.String translate(java.lang.String, java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.IllegalClassException removed</td><td><a href="./xref/org/apache/commons/lang/IllegalClassException.html">org.apache.commons.lang.IllegalClassException</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.IncompleteArgumentException removed</td><td><a href="./xref/org/apache/commons/lang/IncompleteArgumentException.html">org.apache.commons.lang.IncompleteArgumentException</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.NotImplementedException removed</td><td><a href="./xref/org/apache/commons/lang/NotImplementedException.html">org.apache.commons.lang.NotImplementedException</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.NullArgumentException removed</td><td><a href="./xref/org/apache/commons/lang/NullArgumentException.html">org.apache.commons.lang.NullArgumentException</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.NumberRange removed</td><td><a href="./xref/org/apache/commons/lang/NumberRange.html">org.apache.commons.lang.NumberRange</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.NumberUtils removed</td><td><a href="./xref/org/apache/commons/lang/NumberUtils.html">org.apache.commons.lang.NumberUtils</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.StringBuffer appendIdentityToString(java.lang.StringBuffer, java.lang.Object)' has been removed</td><td><a href="./xref/org/apache/commons/lang/ObjectUtils.html">org.apache.commons.lang.ObjectUtils</a></td><td>public java.lang.StringBuffer appendIdentityToString(java.lang.StringBuffer, java.lang.Object)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>In method 'public java.lang.Object max(java.lang.Comparable, java.lang.Comparable)' the number of arguments has changed</td><td><a href="./xref/org/apache/commons/lang/ObjectUtils.html">org.apache.commons.lang.ObjectUtils</a></td><td>public java.lang.Object max(java.lang.Comparable, java.lang.Comparable)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object max(java.lang.Comparable, java.lang.Comparable)' has been changed to java.lang.Comparable</td><td><a href="./xref/org/apache/commons/lang/ObjectUtils.html">org.apache.commons.lang.ObjectUtils</a></td><td>public java.lang.Object max(java.lang.Comparable, java.lang.Comparable)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>In method 'public java.lang.Object min(java.lang.Comparable, java.lang.Comparable)' the number of arguments has changed</td><td><a href="./xref/org/apache/commons/lang/ObjectUtils.html">org.apache.commons.lang.ObjectUtils</a></td><td>public java.lang.Object min(java.lang.Comparable, java.lang.Comparable)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object min(java.lang.Comparable, java.lang.Comparable)' has been changed to java.lang.Comparable</td><td><a href="./xref/org/apache/commons/lang/ObjectUtils.html">org.apache.commons.lang.ObjectUtils</a></td><td>public java.lang.Object min(java.lang.Comparable, java.lang.Comparable)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Removed org.apache.commons.lang.exception.Nestable from the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/SerializationException.html">org.apache.commons.lang.SerializationException</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Removed org.apache.commons.lang.exception.NestableRuntimeException from the list of superclasses</td><td><a href="./xref/org/apache/commons/lang/SerializationException.html">org.apache.commons.lang.SerializationException</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object clone(java.io.Serializable)' has been changed to java.io.Serializable</td><td><a href="./xref/org/apache/commons/lang/SerializationUtils.html">org.apache.commons.lang.SerializationUtils</a></td><td>public java.lang.Object clone(java.io.Serializable)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String escapeCsv(java.lang.String)' is now final</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String escapeCsv(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void escapeCsv(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void escapeCsv(java.io.Writer, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String escapeHtml(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String escapeHtml(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void escapeHtml(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void escapeHtml(java.io.Writer, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String escapeJava(java.lang.String)' is now final</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String escapeJava(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void escapeJava(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void escapeJava(java.io.Writer, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String escapeJavaScript(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String escapeJavaScript(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void escapeJavaScript(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void escapeJavaScript(java.io.Writer, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String escapeSql(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String escapeSql(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String escapeXml(java.lang.String)' is now final</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String escapeXml(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void escapeXml(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void escapeXml(java.io.Writer, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String unescapeCsv(java.lang.String)' is now final</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String unescapeCsv(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void unescapeCsv(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void unescapeCsv(java.io.Writer, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String unescapeHtml(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String unescapeHtml(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void unescapeHtml(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void unescapeHtml(java.io.Writer, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String unescapeJava(java.lang.String)' is now final</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String unescapeJava(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void unescapeJava(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void unescapeJava(java.io.Writer, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String unescapeJavaScript(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String unescapeJavaScript(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void unescapeJavaScript(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void unescapeJavaScript(java.io.Writer, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String unescapeXml(java.lang.String)' is now final</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String unescapeXml(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void unescapeXml(java.io.Writer, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public void unescapeXml(java.io.Writer, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String capitalise(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String capitalise(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String capitaliseAllWords(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String capitaliseAllWords(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String chompLast(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String chompLast(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String chompLast(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String chompLast(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String chopNewline(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String chopNewline(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String clean(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String clean(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String concatenate(java.lang.Object[])' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String concatenate(java.lang.Object[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean contains(java.lang.String, char)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean contains(java.lang.String, char)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean contains(java.lang.String, char)' has changed its type to int</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean contains(java.lang.String, char)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean contains(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean contains(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean contains(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean contains(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean containsAny(java.lang.String, char[])' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsAny(java.lang.String, char[])</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean containsAny(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsAny(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean containsAny(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsAny(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean containsIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean containsIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean containsNone(java.lang.String, char[])' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsNone(java.lang.String, char[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean containsNone(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsNone(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean containsOnly(java.lang.String, char[])' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsOnly(java.lang.String, char[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean containsOnly(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsOnly(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int countMatches(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int countMatches(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int countMatches(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int countMatches(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public java.lang.String defaultIfBlank(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String defaultIfBlank(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public java.lang.String defaultIfBlank(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String defaultIfBlank(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.String defaultIfBlank(java.lang.String, java.lang.String)' has been changed to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String defaultIfBlank(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public java.lang.String defaultIfEmpty(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String defaultIfEmpty(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public java.lang.String defaultIfEmpty(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String defaultIfEmpty(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.String defaultIfEmpty(java.lang.String, java.lang.String)' has been changed to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String defaultIfEmpty(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String deleteSpaces(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String deleteSpaces(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean endsWith(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean endsWith(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean endsWith(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean endsWith(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean endsWithAny(java.lang.String, java.lang.String[])' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean endsWithAny(java.lang.String, java.lang.String[])</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean endsWithAny(java.lang.String, java.lang.String[])' has changed its type to java.lang.CharSequence[]</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean endsWithAny(java.lang.String, java.lang.String[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean endsWithIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean endsWithIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean endsWithIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean endsWithIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean equals(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean equals(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean equals(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean equals(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean equalsIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean equalsIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean equalsIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean equalsIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String escape(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String escape(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String getChomp(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String getChomp(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int getLevenshteinDistance(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int getLevenshteinDistance(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int getLevenshteinDistance(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int getLevenshteinDistance(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String getNestedString(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String getNestedString(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String getNestedString(java.lang.String, java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String getNestedString(java.lang.String, java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String getPrechomp(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String getPrechomp(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOf(java.lang.String, char)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOf(java.lang.String, char)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int indexOf(java.lang.String, char)' has changed its type to int</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOf(java.lang.String, char)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOf(java.lang.String, char, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOf(java.lang.String, char, int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int indexOf(java.lang.String, char, int)' has changed its type to int</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOf(java.lang.String, char, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOf(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOf(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int indexOf(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOf(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOf(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOf(java.lang.String, java.lang.String, int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int indexOf(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOf(java.lang.String, java.lang.String, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOfAny(java.lang.String, char[])' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfAny(java.lang.String, char[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOfAny(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfAny(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOfAny(java.lang.String, java.lang.String[])' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfAny(java.lang.String, java.lang.String[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int indexOfAny(java.lang.String, java.lang.String[])' has changed its type to java.lang.CharSequence[]</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfAny(java.lang.String, java.lang.String[])</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOfAnyBut(java.lang.String, char[])' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfAnyBut(java.lang.String, char[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOfAnyBut(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfAnyBut(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int indexOfAnyBut(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfAnyBut(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOfDifference(java.lang.String[])' has changed its type to java.lang.CharSequence[]</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfDifference(java.lang.String[])</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOfDifference(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfDifference(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int indexOfDifference(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfDifference(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOfIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int indexOfIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int indexOfIgnoreCase(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfIgnoreCase(java.lang.String, java.lang.String, int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int indexOfIgnoreCase(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int indexOfIgnoreCase(java.lang.String, java.lang.String, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isAllLowerCase(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isAllLowerCase(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isAllUpperCase(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isAllUpperCase(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isAlpha(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isAlpha(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isAlphaSpace(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isAlphaSpace(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isAlphanumeric(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isAlphanumeric(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isAlphanumericSpace(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isAlphanumericSpace(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isAsciiPrintable(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isAsciiPrintable(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isBlank(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isBlank(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isEmpty(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isEmpty(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isNotBlank(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isNotBlank(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isNotEmpty(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isNotEmpty(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isNumeric(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isNumeric(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isNumericSpace(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isNumericSpace(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isWhitespace(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean isWhitespace(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public java.lang.String join(java.util.Collection, char)' has changed its type to java.lang.Iterable</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String join(java.util.Collection, char)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public java.lang.String join(java.util.Collection, java.lang.String)' has changed its type to java.lang.Iterable</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String join(java.util.Collection, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int lastIndexOf(java.lang.String, char)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOf(java.lang.String, char)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int lastIndexOf(java.lang.String, char)' has changed its type to int</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOf(java.lang.String, char)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int lastIndexOf(java.lang.String, char, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOf(java.lang.String, char, int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int lastIndexOf(java.lang.String, char, int)' has changed its type to int</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOf(java.lang.String, char, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int lastIndexOf(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOf(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int lastIndexOf(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOf(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int lastIndexOf(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOf(java.lang.String, java.lang.String, int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int lastIndexOf(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOf(java.lang.String, java.lang.String, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int lastIndexOfAny(java.lang.String, java.lang.String[])' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOfAny(java.lang.String, java.lang.String[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int lastIndexOfAny(java.lang.String, java.lang.String[])' has changed its type to java.lang.CharSequence[]</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOfAny(java.lang.String, java.lang.String[])</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int lastIndexOfIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOfIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int lastIndexOfIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOfIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int lastIndexOfIgnoreCase(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOfIgnoreCase(java.lang.String, java.lang.String, int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int lastIndexOfIgnoreCase(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastIndexOfIgnoreCase(java.lang.String, java.lang.String, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int lastOrdinalIndexOf(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastOrdinalIndexOf(java.lang.String, java.lang.String, int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int lastOrdinalIndexOf(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int lastOrdinalIndexOf(java.lang.String, java.lang.String, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int length(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int length(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public int ordinalIndexOf(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int ordinalIndexOf(java.lang.String, java.lang.String, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public int ordinalIndexOf(java.lang.String, java.lang.String, int)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int ordinalIndexOf(java.lang.String, java.lang.String, int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String overlayString(java.lang.String, java.lang.String, int, int)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String overlayString(java.lang.String, java.lang.String, int, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String prechomp(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String prechomp(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String reverseDelimitedString(java.lang.String, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String reverseDelimitedString(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean startsWith(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean startsWith(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean startsWith(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean startsWith(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean startsWithAny(java.lang.String, java.lang.String[])' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean startsWithAny(java.lang.String, java.lang.String[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean startsWithAny(java.lang.String, java.lang.String[])' has changed its type to java.lang.CharSequence[]</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean startsWithAny(java.lang.String, java.lang.String[])</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean startsWithIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean startsWithIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 2 of 'public boolean startsWithIgnoreCase(java.lang.String, java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean startsWithIgnoreCase(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String uncapitalise(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String uncapitalise(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Removed field JAVA_VERSION_FLOAT</td><td><a href="./xref/org/apache/commons/lang/SystemUtils.html">org.apache.commons.lang.SystemUtils</a></td><td>JAVA_VERSION_FLOAT</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Removed field JAVA_VERSION_INT</td><td><a href="./xref/org/apache/commons/lang/SystemUtils.html">org.apache.commons.lang.SystemUtils</a></td><td>JAVA_VERSION_INT</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Removed field JAVA_VERSION_TRIMMED</td><td><a href="./xref/org/apache/commons/lang/SystemUtils.html">org.apache.commons.lang.SystemUtils</a></td><td>JAVA_VERSION_TRIMMED</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public float getJavaVersion()' has been removed</td><td><a href="./xref/org/apache/commons/lang/SystemUtils.html">org.apache.commons.lang.SystemUtils</a></td><td>public float getJavaVersion()</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public boolean isJavaVersionAtLeast(float)' has changed its type to org.apache.commons.lang.JavaVersion</td><td><a href="./xref/org/apache/commons/lang/SystemUtils.html">org.apache.commons.lang.SystemUtils</a></td><td>public boolean isJavaVersionAtLeast(float)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public boolean isJavaVersionAtLeast(int)' has been removed</td><td><a href="./xref/org/apache/commons/lang/SystemUtils.html">org.apache.commons.lang.SystemUtils</a></td><td>public boolean isJavaVersionAtLeast(int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.UnhandledException removed</td><td><a href="./xref/org/apache/commons/lang/UnhandledException.html">org.apache.commons.lang.UnhandledException</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void allElementsOfType(java.util.Collection, java.lang.Class, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void allElementsOfType(java.util.Collection, java.lang.Class, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void allElementsOfType(java.util.Collection, java.lang.Class)' has been removed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void allElementsOfType(java.util.Collection, java.lang.Class)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 3 of 'public void isTrue(boolean, java.lang.String, java.lang.Object)' has changed its type to java.lang.Object[]</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void isTrue(boolean, java.lang.String, java.lang.Object)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void isTrue(boolean, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void isTrue(boolean, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void noNullElements(java.lang.Object[])' has been changed to java.lang.Object[]</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void noNullElements(java.lang.Object[])</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public void noNullElements(java.util.Collection)' has changed its type to java.lang.Iterable</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void noNullElements(java.util.Collection)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void noNullElements(java.util.Collection)' has been changed to java.lang.Iterable</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void noNullElements(java.util.Collection)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>In method 'public void noNullElements(java.lang.Object[], java.lang.String)' the number of arguments has changed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void noNullElements(java.lang.Object[], java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void noNullElements(java.lang.Object[], java.lang.String)' has been changed to java.lang.Object[]</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void noNullElements(java.lang.Object[], java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>In method 'public void noNullElements(java.util.Collection, java.lang.String)' the number of arguments has changed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void noNullElements(java.util.Collection, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void noNullElements(java.util.Collection, java.lang.String)' has been changed to java.lang.Iterable</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void noNullElements(java.util.Collection, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notEmpty(java.lang.Object[])' has been changed to java.lang.Object[]</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.lang.Object[])</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notEmpty(java.util.Collection)' has been changed to java.util.Collection</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.util.Collection)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notEmpty(java.util.Map)' has been changed to java.util.Map</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.util.Map)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public void notEmpty(java.lang.String)' has changed its type to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notEmpty(java.lang.String)' has been changed to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>In method 'public void notEmpty(java.lang.Object[], java.lang.String)' the number of arguments has changed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.lang.Object[], java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notEmpty(java.lang.Object[], java.lang.String)' has been changed to java.lang.Object[]</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.lang.Object[], java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>In method 'public void notEmpty(java.util.Collection, java.lang.String)' the number of arguments has changed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.util.Collection, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notEmpty(java.util.Collection, java.lang.String)' has been changed to java.util.Collection</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.util.Collection, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>In method 'public void notEmpty(java.util.Map, java.lang.String)' the number of arguments has changed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.util.Map, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notEmpty(java.util.Map, java.lang.String)' has been changed to java.util.Map</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.util.Map, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>In method 'public void notEmpty(java.lang.String, java.lang.String)' the number of arguments has changed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.lang.String, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notEmpty(java.lang.String, java.lang.String)' has been changed to java.lang.CharSequence</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notEmpty(java.lang.String, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notNull(java.lang.Object)' has been changed to java.lang.Object</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notNull(java.lang.Object)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>In method 'public void notNull(java.lang.Object, java.lang.String)' the number of arguments has changed</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notNull(java.lang.Object, java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public void notNull(java.lang.Object, java.lang.String)' has been changed to java.lang.Object</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void notNull(java.lang.Object, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.WordUtils removed</td><td><a href="./xref/org/apache/commons/lang/WordUtils.html">org.apache.commons.lang.WordUtils</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public int reflectionCompare(java.lang.Object, java.lang.Object, boolean, java.lang.Class)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/CompareToBuilder.html">org.apache.commons.lang.builder.CompareToBuilder</a></td><td>public int reflectionCompare(java.lang.Object, java.lang.Object, boolean, java.lang.Class)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public boolean reflectionEquals(java.lang.Object, java.lang.Object)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/EqualsBuilder.html">org.apache.commons.lang.builder.EqualsBuilder</a></td><td>public boolean reflectionEquals(java.lang.Object, java.lang.Object)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public boolean reflectionEquals(java.lang.Object, java.lang.Object, boolean, java.lang.Class)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/EqualsBuilder.html">org.apache.commons.lang.builder.EqualsBuilder</a></td><td>public boolean reflectionEquals(java.lang.Object, java.lang.Object, boolean, java.lang.Class)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public int reflectionHashCode(int, int, java.lang.Object, boolean, java.lang.Class)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/HashCodeBuilder.html">org.apache.commons.lang.builder.HashCodeBuilder</a></td><td>public int reflectionHashCode(int, int, java.lang.Object, boolean, java.lang.Class)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public int reflectionHashCode(java.lang.Object)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/HashCodeBuilder.html">org.apache.commons.lang.builder.HashCodeBuilder</a></td><td>public int reflectionHashCode(java.lang.Object)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public ReflectionToStringBuilder(java.lang.Object, org.apache.commons.lang.builder.ToStringStyle, java.lang.StringBuffer, java.lang.Class, boolean)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/ReflectionToStringBuilder.html">org.apache.commons.lang.builder.ReflectionToStringBuilder</a></td><td>public ReflectionToStringBuilder(java.lang.Object, org.apache.commons.lang.builder.ToStringStyle, java.lang.StringBuffer, java.lang.Class, boolean)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public org.apache.commons.lang.builder.ToStringBuilder reflectionAppendArray(java.lang.Object)' has been changed to org.apache.commons.lang.builder.ReflectionToStringBuilder</td><td><a href="./xref/org/apache/commons/lang/builder/ReflectionToStringBuilder.html">org.apache.commons.lang.builder.ReflectionToStringBuilder</a></td><td>public org.apache.commons.lang.builder.ToStringBuilder reflectionAppendArray(java.lang.Object)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String toString(java.lang.Object, org.apache.commons.lang.builder.ToStringStyle, boolean, java.lang.Class)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/ReflectionToStringBuilder.html">org.apache.commons.lang.builder.ReflectionToStringBuilder</a></td><td>public java.lang.String toString(java.lang.Object, org.apache.commons.lang.builder.ToStringStyle, boolean, java.lang.Class)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String toStringExclude(java.lang.Object, java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/ReflectionToStringBuilder.html">org.apache.commons.lang.builder.ReflectionToStringBuilder</a></td><td>public java.lang.String toStringExclude(java.lang.Object, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public boolean isShortClassName()' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/StandardToStringStyle.html">org.apache.commons.lang.builder.StandardToStringStyle</a></td><td>public boolean isShortClassName()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void setShortClassName(boolean)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/StandardToStringStyle.html">org.apache.commons.lang.builder.StandardToStringStyle</a></td><td>public void setShortClassName(boolean)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'protected boolean isShortClassName()' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/ToStringStyle.html">org.apache.commons.lang.builder.ToStringStyle</a></td><td>protected boolean isShortClassName()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'protected void setShortClassName(boolean)' has been removed</td><td><a href="./xref/org/apache/commons/lang/builder/ToStringStyle.html">org.apache.commons.lang.builder.ToStringStyle</a></td><td>protected void setShortClassName(boolean)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.enum.Enum removed</td><td><a href="./xref/org/apache/commons/lang/enum/Enum.html">org.apache.commons.lang.enum.Enum</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.enum.EnumUtils removed</td><td><a href="./xref/org/apache/commons/lang/enum/EnumUtils.html">org.apache.commons.lang.enum.EnumUtils</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.enum.ValuedEnum removed</td><td><a href="./xref/org/apache/commons/lang/enum/ValuedEnum.html">org.apache.commons.lang.enum.ValuedEnum</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.enums.Enum removed</td><td><a href="./xref/org/apache/commons/lang/enums/Enum.html">org.apache.commons.lang.enums.Enum</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.enums.EnumUtils removed</td><td><a href="./xref/org/apache/commons/lang/enums/EnumUtils.html">org.apache.commons.lang.enums.EnumUtils</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.enums.ValuedEnum removed</td><td><a href="./xref/org/apache/commons/lang/enums/ValuedEnum.html">org.apache.commons.lang.enums.ValuedEnum</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Removed org.apache.commons.lang.exception.Nestable from the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/exception/CloneFailedException.html">org.apache.commons.lang.exception.CloneFailedException</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Removed org.apache.commons.lang.exception.NestableRuntimeException from the list of superclasses</td><td><a href="./xref/org/apache/commons/lang/exception/CloneFailedException.html">org.apache.commons.lang.exception.CloneFailedException</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void addCauseMethodName(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public void addCauseMethodName(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.String getFullStackTrace(java.lang.Throwable)' has been removed</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public java.lang.String getFullStackTrace(java.lang.Throwable)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public boolean isCauseMethodName(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public boolean isCauseMethodName(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public boolean isNestedThrowable(java.lang.Throwable)' has been removed</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public boolean isNestedThrowable(java.lang.Throwable)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public boolean isThrowableNested()' has been removed</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public boolean isThrowableNested()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public void removeCauseMethodName(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public void removeCauseMethodName(java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public boolean setCause(java.lang.Throwable, java.lang.Throwable)' has been removed</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public boolean setCause(java.lang.Throwable, java.lang.Throwable)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.exception.Nestable removed</td><td><a href="./xref/org/apache/commons/lang/exception/Nestable.html">org.apache.commons.lang.exception.Nestable</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.exception.NestableDelegate removed</td><td><a href="./xref/org/apache/commons/lang/exception/NestableDelegate.html">org.apache.commons.lang.exception.NestableDelegate</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.exception.NestableError removed</td><td><a href="./xref/org/apache/commons/lang/exception/NestableError.html">org.apache.commons.lang.exception.NestableError</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.exception.NestableException removed</td><td><a href="./xref/org/apache/commons/lang/exception/NestableException.html">org.apache.commons.lang.exception.NestableException</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.exception.NestableRuntimeException removed</td><td><a href="./xref/org/apache/commons/lang/exception/NestableRuntimeException.html">org.apache.commons.lang.exception.NestableRuntimeException</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.math.DoubleRange removed</td><td><a href="./xref/org/apache/commons/lang/math/DoubleRange.html">org.apache.commons.lang.math.DoubleRange</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.math.FloatRange removed</td><td><a href="./xref/org/apache/commons/lang/math/FloatRange.html">org.apache.commons.lang.math.FloatRange</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.math.IntRange removed</td><td><a href="./xref/org/apache/commons/lang/math/IntRange.html">org.apache.commons.lang.math.IntRange</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.math.JVMRandom removed</td><td><a href="./xref/org/apache/commons/lang/math/JVMRandom.html">org.apache.commons.lang.math.JVMRandom</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.math.LongRange removed</td><td><a href="./xref/org/apache/commons/lang/math/LongRange.html">org.apache.commons.lang.math.LongRange</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.math.NumberRange removed</td><td><a href="./xref/org/apache/commons/lang/math/NumberRange.html">org.apache.commons.lang.math.NumberRange</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public int compare(double, double)' has been removed</td><td><a href="./xref/org/apache/commons/lang/math/NumberUtils.html">org.apache.commons.lang.math.NumberUtils</a></td><td>public int compare(double, double)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public int compare(float, float)' has been removed</td><td><a href="./xref/org/apache/commons/lang/math/NumberUtils.html">org.apache.commons.lang.math.NumberUtils</a></td><td>public int compare(float, float)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public int stringToInt(java.lang.String)' has been removed</td><td><a href="./xref/org/apache/commons/lang/math/NumberUtils.html">org.apache.commons.lang.math.NumberUtils</a></td><td>public int stringToInt(java.lang.String)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public int stringToInt(java.lang.String, int)' has been removed</td><td><a href="./xref/org/apache/commons/lang/math/NumberUtils.html">org.apache.commons.lang.math.NumberUtils</a></td><td>public int stringToInt(java.lang.String, int)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.math.RandomUtils removed</td><td><a href="./xref/org/apache/commons/lang/math/RandomUtils.html">org.apache.commons.lang.math.RandomUtils</a></td><td></td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Class org.apache.commons.lang.math.Range removed</td><td><a href="./xref/org/apache/commons/lang/math/Range.html">org.apache.commons.lang.math.Range</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object getValue()' has been changed to java.lang.Boolean</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableBoolean.html">org.apache.commons.lang.mutable.MutableBoolean</a></td><td>public java.lang.Object getValue()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object getValue()' has been changed to java.lang.Byte</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableByte.html">org.apache.commons.lang.mutable.MutableByte</a></td><td>public java.lang.Object getValue()</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object getValue()' has been changed to java.lang.Double</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableDouble.html">org.apache.commons.lang.mutable.MutableDouble</a></td><td>public java.lang.Object getValue()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object getValue()' has been changed to java.lang.Float</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableFloat.html">org.apache.commons.lang.mutable.MutableFloat</a></td><td>public java.lang.Object getValue()</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object getValue()' has been changed to java.lang.Integer</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableInt.html">org.apache.commons.lang.mutable.MutableInt</a></td><td>public java.lang.Object getValue()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object getValue()' has been changed to java.lang.Long</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableLong.html">org.apache.commons.lang.mutable.MutableLong</a></td><td>public java.lang.Object getValue()</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object getValue()' has been changed to java.lang.Short</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableShort.html">org.apache.commons.lang.mutable.MutableShort</a></td><td>public java.lang.Object getValue()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.reflect.Constructor getAccessibleConstructor(java.lang.Class, java.lang.Class)' has been removed</td><td><a href="./xref/org/apache/commons/lang/reflect/ConstructorUtils.html">org.apache.commons.lang.reflect.ConstructorUtils</a></td><td>public java.lang.reflect.Constructor getAccessibleConstructor(java.lang.Class, java.lang.Class)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.Object invokeConstructor(java.lang.Class, java.lang.Object)' has been removed</td><td><a href="./xref/org/apache/commons/lang/reflect/ConstructorUtils.html">org.apache.commons.lang.reflect.ConstructorUtils</a></td><td>public java.lang.Object invokeConstructor(java.lang.Class, java.lang.Object)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.Object invokeExactConstructor(java.lang.Class, java.lang.Object)' has been removed</td><td><a href="./xref/org/apache/commons/lang/reflect/ConstructorUtils.html">org.apache.commons.lang.reflect.ConstructorUtils</a></td><td>public java.lang.Object invokeExactConstructor(java.lang.Class, java.lang.Object)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.reflect.Method getAccessibleMethod(java.lang.Class, java.lang.String, java.lang.Class)' has been removed</td><td><a href="./xref/org/apache/commons/lang/reflect/MethodUtils.html">org.apache.commons.lang.reflect.MethodUtils</a></td><td>public java.lang.reflect.Method getAccessibleMethod(java.lang.Class, java.lang.String, java.lang.Class)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.Object invokeExactMethod(java.lang.Object, java.lang.String, java.lang.Object)' has been removed</td><td><a href="./xref/org/apache/commons/lang/reflect/MethodUtils.html">org.apache.commons.lang.reflect.MethodUtils</a></td><td>public java.lang.Object invokeExactMethod(java.lang.Object, java.lang.String, java.lang.Object)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.Object invokeExactStaticMethod(java.lang.Class, java.lang.String, java.lang.Object)' has been removed</td><td><a href="./xref/org/apache/commons/lang/reflect/MethodUtils.html">org.apache.commons.lang.reflect.MethodUtils</a></td><td>public java.lang.Object invokeExactStaticMethod(java.lang.Class, java.lang.String, java.lang.Object)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.Object invokeMethod(java.lang.Object, java.lang.String, java.lang.Object)' has been removed</td><td><a href="./xref/org/apache/commons/lang/reflect/MethodUtils.html">org.apache.commons.lang.reflect.MethodUtils</a></td><td>public java.lang.Object invokeMethod(java.lang.Object, java.lang.String, java.lang.Object)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.Object invokeStaticMethod(java.lang.Class, java.lang.String, java.lang.Object)' has been removed</td><td><a href="./xref/org/apache/commons/lang/reflect/MethodUtils.html">org.apache.commons.lang.reflect.MethodUtils</a></td><td>public java.lang.Object invokeStaticMethod(java.lang.Class, java.lang.String, java.lang.Object)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Removed java.lang.Cloneable from the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td></td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public org.apache.commons.lang.text.StrBuilder appendAll(java.util.Collection)' has changed its type to java.lang.Iterable</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td>public org.apache.commons.lang.text.StrBuilder appendAll(java.util.Collection)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Parameter 1 of 'public org.apache.commons.lang.text.StrBuilder appendWithSeparators(java.util.Collection, java.lang.String)' has changed its type to java.lang.Iterable</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td>public org.apache.commons.lang.text.StrBuilder appendWithSeparators(java.util.Collection, java.lang.String)</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public java.lang.Object clone()' has been removed</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td>public java.lang.Object clone()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object next()' has been changed to java.lang.String</td><td><a href="./xref/org/apache/commons/lang/text/StrTokenizer.html">org.apache.commons.lang.text.StrTokenizer</a></td><td>public java.lang.Object next()</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Return type of method 'public java.lang.Object previous()' has been changed to java.lang.String</td><td><a href="./xref/org/apache/commons/lang/text/StrTokenizer.html">org.apache.commons.lang.text.StrTokenizer</a></td><td>public java.lang.Object previous()</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Field MILLIS_IN_DAY has been removed, but it was previously a constant</td><td><a href="./xref/org/apache/commons/lang/time/DateUtils.html">org.apache.commons.lang.time.DateUtils</a></td><td>MILLIS_IN_DAY</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Field MILLIS_IN_HOUR has been removed, but it was previously a constant</td><td><a href="./xref/org/apache/commons/lang/time/DateUtils.html">org.apache.commons.lang.time.DateUtils</a></td><td>MILLIS_IN_HOUR</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Field MILLIS_IN_MINUTE has been removed, but it was previously a constant</td><td><a href="./xref/org/apache/commons/lang/time/DateUtils.html">org.apache.commons.lang.time.DateUtils</a></td><td>MILLIS_IN_MINUTE</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Field MILLIS_IN_SECOND has been removed, but it was previously a constant</td><td><a href="./xref/org/apache/commons/lang/time/DateUtils.html">org.apache.commons.lang.time.DateUtils</a></td><td>MILLIS_IN_SECOND</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Removed field UTC_TIME_ZONE</td><td><a href="./xref/org/apache/commons/lang/time/DateUtils.html">org.apache.commons.lang.time.DateUtils</a></td><td>UTC_TIME_ZONE</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Accessibility of method 'public java.util.Date add(java.util.Date, int, int)' has been decreased from public to private</td><td><a href="./xref/org/apache/commons/lang/time/DateUtils.html">org.apache.commons.lang.time.DateUtils</a></td><td>public java.util.Date add(java.util.Date, int, int)</td></tr><tr class="b"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Method 'public boolean getTimeZoneOverridesCalendar()' has been removed</td><td><a href="./xref/org/apache/commons/lang/time/FastDateFormat.html">org.apache.commons.lang.time.FastDateFormat</a></td><td>public boolean getTimeZoneOverridesCalendar()</td></tr><tr class="a"><td><img alt="Error" src="images/icon_error_sml.gif" /></td><td>Accessibility of method 'protected void init()' has been decreased from protected to private</td><td><a href="./xref/org/apache/commons/lang/time/FastDateFormat.html">org.apache.commons.lang.time.FastDateFormat</a></td><td>protected void init()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.AnnotationUtils added</td><td><a href="./xref/org/apache/commons/lang/AnnotationUtils.html">org.apache.commons.lang.AnnotationUtils</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object[] toArray(java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/ArrayUtils.html">org.apache.commons.lang.ArrayUtils</a></td><td>public java.lang.Object[] toArray(java.lang.Object[])</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.CharSequenceUtils added</td><td><a href="./xref/org/apache/commons/lang/CharSequenceUtils.html">org.apache.commons.lang.CharSequenceUtils</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String getSimpleName(java.lang.Class)' has been added</td><td><a href="./xref/org/apache/commons/lang/ClassUtils.html">org.apache.commons.lang.ClassUtils</a></td><td>public java.lang.String getSimpleName(java.lang.Class)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String getSimpleName(java.lang.Object, java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/ClassUtils.html">org.apache.commons.lang.ClassUtils</a></td><td>public java.lang.String getSimpleName(java.lang.Object, java.lang.String)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.EnumUtils added</td><td><a href="./xref/org/apache/commons/lang/EnumUtils.html">org.apache.commons.lang.EnumUtils</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.JavaVersion added</td><td><a href="./xref/org/apache/commons/lang/JavaVersion.html">org.apache.commons.lang.JavaVersion</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object firstNonNull(java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/ObjectUtils.html">org.apache.commons.lang.ObjectUtils</a></td><td>public java.lang.Object firstNonNull(java.lang.Object[])</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int hashCodeMulti(java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/ObjectUtils.html">org.apache.commons.lang.ObjectUtils</a></td><td>public int hashCodeMulti(java.lang.Object[])</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.Range added</td><td><a href="./xref/org/apache/commons/lang/Range.html">org.apache.commons.lang.Range</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field ESCAPE_CSV</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>ESCAPE_CSV</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field ESCAPE_ECMASCRIPT</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>ESCAPE_ECMASCRIPT</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field ESCAPE_HTML3</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>ESCAPE_HTML3</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field ESCAPE_HTML4</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>ESCAPE_HTML4</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field ESCAPE_JAVA</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>ESCAPE_JAVA</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field ESCAPE_XML</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>ESCAPE_XML</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field UNESCAPE_CSV</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>UNESCAPE_CSV</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field UNESCAPE_ECMASCRIPT</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>UNESCAPE_ECMASCRIPT</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field UNESCAPE_HTML3</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>UNESCAPE_HTML3</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field UNESCAPE_HTML4</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>UNESCAPE_HTML4</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field UNESCAPE_JAVA</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>UNESCAPE_JAVA</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added public field UNESCAPE_XML</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>UNESCAPE_XML</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String escapeEcmaScript(java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String escapeEcmaScript(java.lang.String)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String escapeHtml3(java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String escapeHtml3(java.lang.String)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String escapeHtml4(java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String escapeHtml4(java.lang.String)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String unescapeEcmaScript(java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String unescapeEcmaScript(java.lang.String)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String unescapeHtml3(java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String unescapeHtml3(java.lang.String)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String unescapeHtml4(java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringEscapeUtils.html">org.apache.commons.lang.StringEscapeUtils</a></td><td>public java.lang.String unescapeHtml4(java.lang.String)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public boolean containsWhitespace(java.lang.CharSequence)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public boolean containsWhitespace(java.lang.CharSequence)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int getLevenshteinDistance(java.lang.CharSequence, java.lang.CharSequence, int)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public int getLevenshteinDistance(java.lang.CharSequence, java.lang.CharSequence, int)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String repeat(char, int)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String repeat(char, int)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String stripAccents(java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/StringUtils.html">org.apache.commons.lang.StringUtils</a></td><td>public java.lang.String stripAccents(java.lang.String)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void exclusiveBetween(java.lang.Object, java.lang.Object, java.lang.Comparable)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void exclusiveBetween(java.lang.Object, java.lang.Object, java.lang.Comparable)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void exclusiveBetween(java.lang.Object, java.lang.Object, java.lang.Comparable, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void exclusiveBetween(java.lang.Object, java.lang.Object, java.lang.Comparable, java.lang.String, java.lang.Object[])</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void inclusiveBetween(java.lang.Object, java.lang.Object, java.lang.Comparable)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void inclusiveBetween(java.lang.Object, java.lang.Object, java.lang.Comparable)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void inclusiveBetween(java.lang.Object, java.lang.Object, java.lang.Comparable, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void inclusiveBetween(java.lang.Object, java.lang.Object, java.lang.Comparable, java.lang.String, java.lang.Object[])</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void isAssignableFrom(java.lang.Class, java.lang.Class)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void isAssignableFrom(java.lang.Class, java.lang.Class)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void isAssignableFrom(java.lang.Class, java.lang.Class, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void isAssignableFrom(java.lang.Class, java.lang.Class, java.lang.String, java.lang.Object[])</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void isInstanceOf(java.lang.Class, java.lang.Object)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void isInstanceOf(java.lang.Class, java.lang.Object)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void isInstanceOf(java.lang.Class, java.lang.Object, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void isInstanceOf(java.lang.Class, java.lang.Object, java.lang.String, java.lang.Object[])</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void matchesPattern(java.lang.CharSequence, java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void matchesPattern(java.lang.CharSequence, java.lang.String)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void matchesPattern(java.lang.CharSequence, java.lang.String, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void matchesPattern(java.lang.CharSequence, java.lang.String, java.lang.String, java.lang.Object[])</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.CharSequence notBlank(java.lang.CharSequence, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public java.lang.CharSequence notBlank(java.lang.CharSequence, java.lang.String, java.lang.Object[])</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.CharSequence notBlank(java.lang.CharSequence)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public java.lang.CharSequence notBlank(java.lang.CharSequence)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object[] validIndex(java.lang.Object[], int, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public java.lang.Object[] validIndex(java.lang.Object[], int, java.lang.String, java.lang.Object[])</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object[] validIndex(java.lang.Object[], int)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public java.lang.Object[] validIndex(java.lang.Object[], int)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.util.Collection validIndex(java.util.Collection, int, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public java.util.Collection validIndex(java.util.Collection, int, java.lang.String, java.lang.Object[])</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.util.Collection validIndex(java.util.Collection, int)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public java.util.Collection validIndex(java.util.Collection, int)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.CharSequence validIndex(java.lang.CharSequence, int, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public java.lang.CharSequence validIndex(java.lang.CharSequence, int, java.lang.String, java.lang.Object[])</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.CharSequence validIndex(java.lang.CharSequence, int)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public java.lang.CharSequence validIndex(java.lang.CharSequence, int)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void validState(boolean)' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void validState(boolean)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void validState(boolean, java.lang.String, java.lang.Object[])' has been added</td><td><a href="./xref/org/apache/commons/lang/Validate.html">org.apache.commons.lang.Validate</a></td><td>public void validState(boolean, java.lang.String, java.lang.Object[])</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.builder.Builder added</td><td><a href="./xref/org/apache/commons/lang/builder/Builder.html">org.apache.commons.lang.builder.Builder</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added org.apache.commons.lang.builder.Builder to the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/builder/CompareToBuilder.html">org.apache.commons.lang.builder.CompareToBuilder</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Integer build()' has been added</td><td><a href="./xref/org/apache/commons/lang/builder/CompareToBuilder.html">org.apache.commons.lang.builder.CompareToBuilder</a></td><td>public java.lang.Integer build()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object build()' has been added</td><td><a href="./xref/org/apache/commons/lang/builder/CompareToBuilder.html">org.apache.commons.lang.builder.CompareToBuilder</a></td><td>public java.lang.Object build()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added org.apache.commons.lang.builder.Builder to the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/builder/EqualsBuilder.html">org.apache.commons.lang.builder.EqualsBuilder</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Boolean build()' has been added</td><td><a href="./xref/org/apache/commons/lang/builder/EqualsBuilder.html">org.apache.commons.lang.builder.EqualsBuilder</a></td><td>public java.lang.Boolean build()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object build()' has been added</td><td><a href="./xref/org/apache/commons/lang/builder/EqualsBuilder.html">org.apache.commons.lang.builder.EqualsBuilder</a></td><td>public java.lang.Object build()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added org.apache.commons.lang.builder.Builder to the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/builder/HashCodeBuilder.html">org.apache.commons.lang.builder.HashCodeBuilder</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Integer build()' has been added</td><td><a href="./xref/org/apache/commons/lang/builder/HashCodeBuilder.html">org.apache.commons.lang.builder.HashCodeBuilder</a></td><td>public java.lang.Integer build()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object build()' has been added</td><td><a href="./xref/org/apache/commons/lang/builder/HashCodeBuilder.html">org.apache.commons.lang.builder.HashCodeBuilder</a></td><td>public java.lang.Object build()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added org.apache.commons.lang.builder.Builder to the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/builder/ReflectionToStringBuilder.html">org.apache.commons.lang.builder.ReflectionToStringBuilder</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Accessibility of field excludeFieldNames has been increased from private to protected</td><td><a href="./xref/org/apache/commons/lang/builder/ReflectionToStringBuilder.html">org.apache.commons.lang.builder.ReflectionToStringBuilder</a></td><td>excludeFieldNames</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added org.apache.commons.lang.builder.Builder to the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/builder/ToStringBuilder.html">org.apache.commons.lang.builder.ToStringBuilder</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String build()' has been added</td><td><a href="./xref/org/apache/commons/lang/builder/ToStringBuilder.html">org.apache.commons.lang.builder.ToStringBuilder</a></td><td>public java.lang.String build()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object build()' has been added</td><td><a href="./xref/org/apache/commons/lang/builder/ToStringBuilder.html">org.apache.commons.lang.builder.ToStringBuilder</a></td><td>public java.lang.Object build()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.AtomicInitializer added</td><td><a href="./xref/org/apache/commons/lang/concurrent/AtomicInitializer.html">org.apache.commons.lang.concurrent.AtomicInitializer</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.AtomicSafeInitializer added</td><td><a href="./xref/org/apache/commons/lang/concurrent/AtomicSafeInitializer.html">org.apache.commons.lang.concurrent.AtomicSafeInitializer</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.BackgroundInitializer added</td><td><a href="./xref/org/apache/commons/lang/concurrent/BackgroundInitializer.html">org.apache.commons.lang.concurrent.BackgroundInitializer</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.BasicThreadFactory added</td><td><a href="./xref/org/apache/commons/lang/concurrent/BasicThreadFactory.html">org.apache.commons.lang.concurrent.BasicThreadFactory</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.BasicThreadFactory$Builder added</td><td><a href="./xref/org/apache/commons/lang/concurrent/BasicThreadFactory$Builder.html">org.apache.commons.lang.concurrent.BasicThreadFactory$Builder</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.CallableBackgroundInitializer added</td><td><a href="./xref/org/apache/commons/lang/concurrent/CallableBackgroundInitializer.html">org.apache.commons.lang.concurrent.CallableBackgroundInitializer</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.ConcurrentException added</td><td><a href="./xref/org/apache/commons/lang/concurrent/ConcurrentException.html">org.apache.commons.lang.concurrent.ConcurrentException</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.ConcurrentInitializer added</td><td><a href="./xref/org/apache/commons/lang/concurrent/ConcurrentInitializer.html">org.apache.commons.lang.concurrent.ConcurrentInitializer</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.ConcurrentRuntimeException added</td><td><a href="./xref/org/apache/commons/lang/concurrent/ConcurrentRuntimeException.html">org.apache.commons.lang.concurrent.ConcurrentRuntimeException</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.ConcurrentUtils added</td><td><a href="./xref/org/apache/commons/lang/concurrent/ConcurrentUtils.html">org.apache.commons.lang.concurrent.ConcurrentUtils</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.ConstantInitializer added</td><td><a href="./xref/org/apache/commons/lang/concurrent/ConstantInitializer.html">org.apache.commons.lang.concurrent.ConstantInitializer</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.LazyInitializer added</td><td><a href="./xref/org/apache/commons/lang/concurrent/LazyInitializer.html">org.apache.commons.lang.concurrent.LazyInitializer</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.MultiBackgroundInitializer added</td><td><a href="./xref/org/apache/commons/lang/concurrent/MultiBackgroundInitializer.html">org.apache.commons.lang.concurrent.MultiBackgroundInitializer</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.MultiBackgroundInitializer$MultiBackgroundInitializerResults added</td><td><a href="./xref/org/apache/commons/lang/concurrent/MultiBackgroundInitializer$MultiBackgroundInitializerResults.html">org.apache.commons.lang.concurrent.MultiBackgroundInitializer$MultiBackgroundInitializerResults</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.concurrent.TimedSemaphore added</td><td><a href="./xref/org/apache/commons/lang/concurrent/TimedSemaphore.html">org.apache.commons.lang.concurrent.TimedSemaphore</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.event.EventListenerSupport added</td><td><a href="./xref/org/apache/commons/lang/event/EventListenerSupport.html">org.apache.commons.lang.event.EventListenerSupport</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.event.EventListenerSupport$ProxyInvocationHandler added</td><td><a href="./xref/org/apache/commons/lang/event/EventListenerSupport$ProxyInvocationHandler.html">org.apache.commons.lang.event.EventListenerSupport$ProxyInvocationHandler</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.event.EventUtils added</td><td><a href="./xref/org/apache/commons/lang/event/EventUtils.html">org.apache.commons.lang.event.EventUtils</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.exception.ContextedException added</td><td><a href="./xref/org/apache/commons/lang/exception/ContextedException.html">org.apache.commons.lang.exception.ContextedException</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.exception.ContextedRuntimeException added</td><td><a href="./xref/org/apache/commons/lang/exception/ContextedRuntimeException.html">org.apache.commons.lang.exception.ContextedRuntimeException</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.exception.DefaultExceptionContext added</td><td><a href="./xref/org/apache/commons/lang/exception/DefaultExceptionContext.html">org.apache.commons.lang.exception.DefaultExceptionContext</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.exception.ExceptionContext added</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionContext.html">org.apache.commons.lang.exception.ExceptionContext</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Throwable getCause(java.lang.Throwable)' has been deprecated</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public java.lang.Throwable getCause(java.lang.Throwable)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Throwable getCause(java.lang.Throwable, java.lang.String[])' has been deprecated</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public java.lang.Throwable getCause(java.lang.Throwable, java.lang.String[])</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.String[] getDefaultCauseMethodNames()' has been added</td><td><a href="./xref/org/apache/commons/lang/exception/ExceptionUtils.html">org.apache.commons.lang.exception.ExceptionUtils</a></td><td>public java.lang.String[] getDefaultCauseMethodNames()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int compareTo(org.apache.commons.lang.math.Fraction)' has been added</td><td><a href="./xref/org/apache/commons/lang/math/Fraction.html">org.apache.commons.lang.math.Fraction</a></td><td>public int compareTo(org.apache.commons.lang.math.Fraction)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int compareTo(org.apache.commons.lang.mutable.MutableBoolean)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableBoolean.html">org.apache.commons.lang.mutable.MutableBoolean</a></td><td>public int compareTo(org.apache.commons.lang.mutable.MutableBoolean)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object getValue()' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableBoolean.html">org.apache.commons.lang.mutable.MutableBoolean</a></td><td>public java.lang.Object getValue()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void setValue(java.lang.Boolean)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableBoolean.html">org.apache.commons.lang.mutable.MutableBoolean</a></td><td>public void setValue(java.lang.Boolean)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int compareTo(org.apache.commons.lang.mutable.MutableByte)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableByte.html">org.apache.commons.lang.mutable.MutableByte</a></td><td>public int compareTo(org.apache.commons.lang.mutable.MutableByte)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object getValue()' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableByte.html">org.apache.commons.lang.mutable.MutableByte</a></td><td>public java.lang.Object getValue()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void setValue(java.lang.Number)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableByte.html">org.apache.commons.lang.mutable.MutableByte</a></td><td>public void setValue(java.lang.Number)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int compareTo(org.apache.commons.lang.mutable.MutableDouble)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableDouble.html">org.apache.commons.lang.mutable.MutableDouble</a></td><td>public int compareTo(org.apache.commons.lang.mutable.MutableDouble)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object getValue()' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableDouble.html">org.apache.commons.lang.mutable.MutableDouble</a></td><td>public java.lang.Object getValue()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void setValue(java.lang.Number)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableDouble.html">org.apache.commons.lang.mutable.MutableDouble</a></td><td>public void setValue(java.lang.Number)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int compareTo(org.apache.commons.lang.mutable.MutableFloat)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableFloat.html">org.apache.commons.lang.mutable.MutableFloat</a></td><td>public int compareTo(org.apache.commons.lang.mutable.MutableFloat)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object getValue()' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableFloat.html">org.apache.commons.lang.mutable.MutableFloat</a></td><td>public java.lang.Object getValue()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void setValue(java.lang.Number)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableFloat.html">org.apache.commons.lang.mutable.MutableFloat</a></td><td>public void setValue(java.lang.Number)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int compareTo(org.apache.commons.lang.mutable.MutableInt)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableInt.html">org.apache.commons.lang.mutable.MutableInt</a></td><td>public int compareTo(org.apache.commons.lang.mutable.MutableInt)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object getValue()' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableInt.html">org.apache.commons.lang.mutable.MutableInt</a></td><td>public java.lang.Object getValue()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void setValue(java.lang.Number)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableInt.html">org.apache.commons.lang.mutable.MutableInt</a></td><td>public void setValue(java.lang.Number)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int compareTo(org.apache.commons.lang.mutable.MutableLong)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableLong.html">org.apache.commons.lang.mutable.MutableLong</a></td><td>public int compareTo(org.apache.commons.lang.mutable.MutableLong)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object getValue()' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableLong.html">org.apache.commons.lang.mutable.MutableLong</a></td><td>public java.lang.Object getValue()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void setValue(java.lang.Number)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableLong.html">org.apache.commons.lang.mutable.MutableLong</a></td><td>public void setValue(java.lang.Number)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public int compareTo(org.apache.commons.lang.mutable.MutableShort)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableShort.html">org.apache.commons.lang.mutable.MutableShort</a></td><td>public int compareTo(org.apache.commons.lang.mutable.MutableShort)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object getValue()' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableShort.html">org.apache.commons.lang.mutable.MutableShort</a></td><td>public java.lang.Object getValue()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void setValue(java.lang.Number)' has been added</td><td><a href="./xref/org/apache/commons/lang/mutable/MutableShort.html">org.apache.commons.lang.mutable.MutableShort</a></td><td>public void setValue(java.lang.Number)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.reflect.TypeUtils added</td><td><a href="./xref/org/apache/commons/lang/reflect/TypeUtils.html">org.apache.commons.lang.reflect.TypeUtils</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.FormattableUtils added</td><td><a href="./xref/org/apache/commons/lang/text/FormattableUtils.html">org.apache.commons.lang.text.FormattableUtils</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added java.lang.Appendable to the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Added java.lang.CharSequence to the set of implemented interfaces</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public org.apache.commons.lang.text.StrBuilder append(java.lang.CharSequence)' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td>public org.apache.commons.lang.text.StrBuilder append(java.lang.CharSequence)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public org.apache.commons.lang.text.StrBuilder append(java.lang.CharSequence, int, int)' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td>public org.apache.commons.lang.text.StrBuilder append(java.lang.CharSequence, int, int)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Appendable append(char)' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td>public java.lang.Appendable append(char)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Appendable append(java.lang.CharSequence, int, int)' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td>public java.lang.Appendable append(java.lang.CharSequence, int, int)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Appendable append(java.lang.CharSequence)' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td>public java.lang.Appendable append(java.lang.CharSequence)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.CharSequence subSequence(int, int)' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrBuilder.html">org.apache.commons.lang.text.StrBuilder</a></td><td>public java.lang.CharSequence subSequence(int, int)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void add(java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrTokenizer.html">org.apache.commons.lang.text.StrTokenizer</a></td><td>public void add(java.lang.String)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object next()' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrTokenizer.html">org.apache.commons.lang.text.StrTokenizer</a></td><td>public java.lang.Object next()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.lang.Object previous()' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrTokenizer.html">org.apache.commons.lang.text.StrTokenizer</a></td><td>public java.lang.Object previous()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public void set(java.lang.String)' has been added</td><td><a href="./xref/org/apache/commons/lang/text/StrTokenizer.html">org.apache.commons.lang.text.StrTokenizer</a></td><td>public void set(java.lang.String)</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.WordUtils added</td><td><a href="./xref/org/apache/commons/lang/text/WordUtils.html">org.apache.commons.lang.text.WordUtils</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.AggregateTranslator added</td><td><a href="./xref/org/apache/commons/lang/text/translate/AggregateTranslator.html">org.apache.commons.lang.text.translate.AggregateTranslator</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.CharSequenceTranslator added</td><td><a href="./xref/org/apache/commons/lang/text/translate/CharSequenceTranslator.html">org.apache.commons.lang.text.translate.CharSequenceTranslator</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.CodePointTranslator added</td><td><a href="./xref/org/apache/commons/lang/text/translate/CodePointTranslator.html">org.apache.commons.lang.text.translate.CodePointTranslator</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.EntityArrays added</td><td><a href="./xref/org/apache/commons/lang/text/translate/EntityArrays.html">org.apache.commons.lang.text.translate.EntityArrays</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.LookupTranslator added</td><td><a href="./xref/org/apache/commons/lang/text/translate/LookupTranslator.html">org.apache.commons.lang.text.translate.LookupTranslator</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.NumericEntityEscaper added</td><td><a href="./xref/org/apache/commons/lang/text/translate/NumericEntityEscaper.html">org.apache.commons.lang.text.translate.NumericEntityEscaper</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.NumericEntityUnescaper added</td><td><a href="./xref/org/apache/commons/lang/text/translate/NumericEntityUnescaper.html">org.apache.commons.lang.text.translate.NumericEntityUnescaper</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION added</td><td><a href="./xref/org/apache/commons/lang/text/translate/NumericEntityUnescaper$OPTION.html">org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.OctalUnescaper added</td><td><a href="./xref/org/apache/commons/lang/text/translate/OctalUnescaper.html">org.apache.commons.lang.text.translate.OctalUnescaper</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.UnicodeEscaper added</td><td><a href="./xref/org/apache/commons/lang/text/translate/UnicodeEscaper.html">org.apache.commons.lang.text.translate.UnicodeEscaper</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.text.translate.UnicodeUnescaper added</td><td><a href="./xref/org/apache/commons/lang/text/translate/UnicodeUnescaper.html">org.apache.commons.lang.text.translate.UnicodeUnescaper</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public java.util.Date add(java.util.Date, int, int)' is no longer deprecated</td><td><a href="./xref/org/apache/commons/lang/time/DateUtils.html">org.apache.commons.lang.time.DateUtils</a></td><td>public java.util.Date add(java.util.Date, int, int)</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public long getNanoTime()' has been added</td><td><a href="./xref/org/apache/commons/lang/time/StopWatch.html">org.apache.commons.lang.time.StopWatch</a></td><td>public long getNanoTime()</td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Method 'public long getSplitNanoTime()' has been added</td><td><a href="./xref/org/apache/commons/lang/time/StopWatch.html">org.apache.commons.lang.time.StopWatch</a></td><td>public long getSplitNanoTime()</td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.tuple.ImmutablePair added</td><td><a href="./xref/org/apache/commons/lang/tuple/ImmutablePair.html">org.apache.commons.lang.tuple.ImmutablePair</a></td><td></td></tr><tr class="b"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.tuple.MutablePair added</td><td><a href="./xref/org/apache/commons/lang/tuple/MutablePair.html">org.apache.commons.lang.tuple.MutablePair</a></td><td></td></tr><tr class="a"><td><img alt="Info" src="images/icon_info_sml.gif" /></td><td>Class org.apache.commons.lang.tuple.Pair added</td><td><a href="./xref/org/apache/commons/lang/tuple/Pair.html">org.apache.commons.lang.tuple.Pair</a></td><td></td></tr></table></div>
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="center">Copyright &#169; 2001-2011
+ <a href="https://www.apache.org/">The Apache Software Foundation</a>.
+ All Rights Reserved.
+
+ </div>
+
+<div class="center">Apache Commons, Apache Commons Lang, Apache, the Apache feather logo, and the Apache Commons project logos are trademarks of The Apache Software Foundation.
+ All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/src/site/resources/profile.jacoco b/src/site/resources/profile.jacoco
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/site/resources/profile.jacoco
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-1.0.1.txt b/src/site/resources/release-notes/RELEASE-NOTES-1.0.1.txt
new file mode 100644
index 000000000..975849225
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-1.0.1.txt
@@ -0,0 +1,63 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 1.0.1
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for this version of the Commons
+Lang package. Commons Lang is a set of utility functions and reusable
+components that should be a help in any Java environment.
+
+NEW FEATURES:
+
+This release is a bugfix release for the Lang 1.0 release. There are no new features.
+
+BUG FIXES:
+
+#14062: StringUtils.split fails to handle (String, null, int) correctly.
+ This results in the String "null" appearing in the split text, when
+ the text is not entirely consumed in the split, ie) int is less
+ than the number of whitespace tokens in the String.
+ Fix is courtesy of Mark McDowell.
+
+#- : SystemUtils.isJavaVersionAtLeast made static.
+
+#- : NumberUtils test fails in JDK 1.2 due to lack of 1.2 support for
+ "1.1E-700F". Fix is to use SystemUtils to protect it for the moment.
+
+#- : ToStringStyle did not compile under JDK 1.2 due to inner class
+ issues. Added explicit 'this.' prefixes to make this so.
+
+#14566: NumberRange.getMaximum was returning the minimum.
+ Bug reported by Kasper Ronning.
+
+#13527: ExceptionUtils now handles getCausedByException and getRootCause
+ from EJBException and ServletException, as reported by Lars Beuster.
+
+#14334: NestableDelegate now implements Serializable, as reported by
+ Max Rydahl Andersen.
+
+#13568: Enums cannot now be created with the same name as an already
+ existing Enum. Enum now compiles under JDK 1.2.
+
+DEPRECATIONS:
+
+Solely a bugfix version.
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-1.0.txt b/src/site/resources/release-notes/RELEASE-NOTES-1.0.txt
new file mode 100644
index 000000000..10ee7e89c
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-1.0.txt
@@ -0,0 +1,161 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 1.0
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for this version of the Commons
+Lang package. Commons Lang is a set of utility functions and reusable
+components that should be a help in any Java environment.
+
+NEW FEATURES:
+
+Since the release of the b1 package the following have been added:
+
+lang.
+ SystemUtils:
+ Brings together many system specific variables under one easy component.
+
+exception.
+ ExceptionUtils:
+ Provides helpful static functions for dealing with Exceptions.
+ NestableError :
+ Adds nesting ability to Errors.
+
+enum sub-package:
+ A solid version of the typical Java translation of a C enum.
+
+builder sub-package:
+ A series of helpers for handling standard Object methods such as equals,
+ toString, compareTo and hashCode in a professional manner.
+
+
+BUG FIXES:
+
+StringUtils.stripStart and stripEnd were improved to match their Javadoc.
+StringUtils.convertUnicodeToNative and convertNativeToUnicode both removed.
+ Both methods did not work properly.
+
+
+DEPRECATIONS:
+
+Much of the exception subpackage was reworked between 1.0-b1 and 1.0. Apart
+from this the API should have a high level of backward compatibility.
+
+
+CHANGES: [In 'diff' format]
+
+Jar changes
+===========
+> org.apache.commons.lang.exception.ExceptionUtils
+> org.apache.commons.lang.exception.NestableError
+> org.apache.commons.lang.ObjectUtils$Null
+> org.apache.commons.lang.ObjectUtils$1
+> org.apache.commons.lang.enum.Enum$Entry
+> org.apache.commons.lang.enum.Enum$1
+> org.apache.commons.lang.enum.Enum
+> org.apache.commons.lang.enum.EnumUtils
+> org.apache.commons.lang.enum.ValuedEnum
+> org.apache.commons.lang.builder.CompareToBuilder
+> org.apache.commons.lang.builder.EqualsBuilder
+> org.apache.commons.lang.builder.HashCodeBuilder
+> org.apache.commons.lang.builder.StandardToStringStyle
+> org.apache.commons.lang.builder.ToStringStyle$DefaultToStringStyle
+> org.apache.commons.lang.builder.ToStringStyle$NoFieldNameToStringStyle
+> org.apache.commons.lang.builder.ToStringStyle$SimpleToStringStyle
+> org.apache.commons.lang.builder.ToStringStyle$MultiLineToStringStyle
+> org.apache.commons.lang.builder.ToStringStyle$1
+> org.apache.commons.lang.builder.ToStringStyle
+> org.apache.commons.lang.builder.ToStringBuilder
+> org.apache.commons.lang.SystemUtils
+
+
+Class changes
+=============
+org.apache.commons.lang.exception.Nestable
+--------------------
+< public abstract int getLength();
+> public abstract int getThrowableCount();
+< public abstract int indexOfThrowable(int, java.lang.Class);
+---
+> public abstract int indexOfThrowable(java.lang.Class, int);
+> public abstract void printStackTrace(java.io.PrintStream);
+
+org.apache.commons.lang.exception.NestableDelegate
+--------------------
+< int getLength();
+< java.lang.String getMessage(java.lang.String);
+> java.lang.String getMessage(java.lang.String);
+> java.lang.String getMessages()[];
+> int getThrowableCount();
+< java.lang.String getMessages()[];
+< int indexOfThrowable(int, java.lang.Class);
+---
+> int indexOfThrowable(java.lang.Class, int);
+
+org.apache.commons.lang.exception.NestableException
+--------------------
+< public int getLength();
+> public java.lang.String getMessage(int);
+> public int getThrowableCount();
+< public java.lang.String getMessage(int);
+< public int indexOfThrowable(int, java.lang.Class);
+---
+> public int indexOfThrowable(java.lang.Class, int);
+
+org.apache.commons.lang.exception.NestableRuntimeException
+--------------------
+< public int getLength();
+> public java.lang.String getMessage(int);
+> public int getThrowableCount();
+< public java.lang.String getMessage(int);
+< public int indexOfThrowable(int, java.lang.Class);
+---
+> public int indexOfThrowable(java.lang.Class, int);
+
+org.apache.commons.lang.NumberUtils
+--------------------
+> public static long minimum(long, long, long);
+> public static long maximum(long, long, long);
+> public static int compare(double, double);
+> public static int compare(float, float);
+
+org.apache.commons.lang.ObjectUtils
+--------------------
+> public static final org.apache.commons.lang.ObjectUtils.Null NULL;
+> public org.apache.commons.lang.ObjectUtils();
+> public static java.lang.String identityToString(java.lang.Object);
+> static {};
+> public static class org.apache.commons.lang.ObjectUtils. Null extends java.lang.Object implements java.io.Serializable
+
+org.apache.commons.lang.RandomStringUtils
+--------------------
+> public org.apache.commons.lang.RandomStringUtils();
+
+org.apache.commons.lang.StringUtils
+--------------------
+> public org.apache.commons.lang.StringUtils();
+< public static java.lang.String stackTrace(java.lang.Throwable);
+< public static java.lang.String convertUnicodeToNative(java.lang.String, java.lang.String) throws java.io.IOException;
+< public static java.lang.String convertNativeToUnicode(java.lang.String, java.lang.String) throws java.io.IOException;
+---
+> public static boolean containsOnly(java.lang.String, char[]);
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-2.0.txt b/src/site/resources/release-notes/RELEASE-NOTES-2.0.txt
new file mode 100644
index 000000000..000c90c8a
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-2.0.txt
@@ -0,0 +1,676 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 2.0
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for this version of the Commons
+Lang package. Commons Lang is a set of utility functions and reusable
+components that should be a help in any Java environment.
+
+This release has involved a major clean and tidy exercise.
+Javadoc and Tests are now much more thorough.
+All methods should now be much clearer in what they do in unusual cases.
+
+
+INCOMPATIBLE CHANGES:
+Some StringUtils methods have changed functionality from 1.0:
+ isEmpty()
+ chomp(String)
+ chomp(String,String)
+ swapCase(String)
+Numerous other methods have changed null handling to accept nulls gracefully.
+As with all major version releases, check your code for incompatibilities.
+
+
+NEW FEATURES:
+
+Since the release of the 1.0 package the following classes have been added:
+
+lang package:
+ ArrayUtils
+ BitField
+ BooleanUtils
+ CharRange (previously package scoped)
+ ClassUtils
+ StringEscapeUtils
+ WordUtils
+ IllegalClassException
+ IncompleteArgumentException
+ NotImplementedException
+ NullArgumentException
+ SerializationException
+ UnhandledException
+ Validate
+
+
+math sub-package:
+ IntRange
+ LongRange
+ Range
+ DoubleRange
+ JVMRandom
+ NumberRange
+ FloatRange
+ NumberUtils
+ Fraction
+ RandomUtils
+
+time sub-package:
+ DateFormatUtils
+ FastDateFormat
+ DateUtils
+ StopWatch
+
+Since the release of the 1.0 package the following classes have been changed:
+
+lang:
+ CharSet:
+ Added factory method, equals and hashCode().
+ Better defined and tested the set syntax.
+ CharSetUtils:
+ added keep method: keep any characters specified in the CharSet string
+ RandomStringUtils:
+ random method: overloaded to allow passing in of a Random class
+ SerializationUtils:
+ added empty constructor
+ StringUtils:
+ isEmpty() changed to not trim
+ chomp() changed to be more like Perl.
+ swapCase() no longer word based, but no difference if you pass in ASCII
+ Various methods changed in the handling of null (less exceptions).
+ Many new methods.
+ Various methods deprecated.
+ SystemUtils:
+ isJavaVersionAtLeast(int) added. getJavaVersion() deprecated.
+ host of new constants.
+
+enum:
+ Enum:
+ getEnumClass(Class) added
+ EnumUtils:
+ Removed irrelevant Comparable/Serializable interfaces.
+
+exception:
+ NestableDelegate:
+ Gained many new methods for dissecting an Exception.
+ ExceptionUtils:
+ Gained many new methods to improve handling of nested stack traces.
+
+builder:
+ ReflectionToStringBuilder:
+ Handy class added for creating default toStrings.
+ All other builder classes received a set of new methods.
+
+
+BUG FIXES:
+
+ID Sev Pri Plt Owner State Result Summary
+13367 [PATCH] StringUtil enhancement
+13391 Javadoc nit
+13771 Additional Lang Method Suggestions
+14306 NullPointerException in CompareToBuilder
+14357 static option for reversing the stacktrace
+14447 ToStringBuilder doesn't work well in subclasses
+14883 StringUtils.countMatches loops forever if substring empty
+14884 NumberRange inaccurate for Long, etc.
+14985 More flexibility for getRootCause in ExceptionUtils
+15154 SystemUtils.IS_JAVA_1_5 Javadoc is wrong
+15257 Hierarchy support in ToStringBuilder.reflectionToString()
+15438 ArrayUtils.contains()
+15439 Enum does not support inner sub-classes
+15986 Infinite loop in ToStringBuilder.reflectionToString for inne
+16076 Example in Javadoc for ToStringBuilder wrong for append.
+16193 Hierarchy support in EqualsBuilder.reflectionEquals()
+16202 typo in the javadoc example code
+16204 Infinite loop in StringUtils.replace(text, repl, with) + FIX
+16227 Added class hierarchy support to CompareToBuilder.reflectionC
+16228 Added class hierarchy support to HashCodeBuilder.reflectionHa
+16284 MethodUtils: Removed unused code/unused local vars.
+16341 No Javadoc for NestableDelegate
+16622 Removed compile warning in FastDateFormat
+16669 Javadoc Errata
+16676 StackOverflow due to ToStringBuilder
+16689 ExceptionUtils new methods.
+16690 Specify initial size for Enum's HashMap.
+16787 Removed compile warning in ObjectUtils
+17250 [Lang] Should ToStringBuilder.reflectionToString handle arra
+17654 EnumUtils nit: The import java.io.Serializable is never used
+17882 Add join(..., char c) to StringUtils (and some performance f
+18077 StringUtils.chomp does not match Perl
+18723 RandomStringUtils infinite loop with length < 1
+18836 test.lang fails if compiled with non iso-8859-1 locales
+18948 Resurrect the WordWrapUtils from commons-sandbox/utils
+19296 [Lang] What to do with FastDateFormat unused private constru
+19364 [Lang] time unit tests fail on Sundays
+19756 [lang] java.lang.ExceptionInInitializerError thrown by JVMRa
+19880 [lang] patch and test case fixing problem with RandomStringU
+20165 [LANG] SystemUtils does not play nice in an Applet
+20538 [lang] NumberUtils.isNumber allows illegal trailing characte
+20592 [lang] RandomStringUtils.randomAlpha methods omit 'z'
+20603 [lang] Make NestableDelegate methods public instead of packa
+20632 Refactored reflection feature of ToStringBuilder into new Re
+20652 StringUtils.chopNewLine - StringIndexOutOfBoundsException
+21021 [PATCH] reduce object creation in ToStringBuilder
+21068 [lang] [PATCH] NumberUtils min/max, BooleanUtils.xor, and Ar
+21099 [lang][PATCH] Unused field 'startFinal' in DateIterator
+21715 The javadoc says "Mac" instead of "OS/2"
+21734 [PATCH] all NumberUtils.createXXX(String) methods handle null
+21750 [lang] StringUtils javadoc and test enhancements
+21758 [lang] lang.builder classes javadoc edits (mostly typo fixes)
+21797 [lang] Add javadoc examples and tests for StringUtils
+21809 [lang] maven-beta10 checkstyle problem
+21904 NumberUtils.createBigDecimal("") NPE in Sun 1.3.1_08
+21952 [lang] Improved tests, javadoc for CharSetUtils, StringEscapeUtils
+22091 Adding tolerance to double[] search methods in ArrayUtils
+22094 A small, but important javadoc fix for Fraction proper whole/numerator
+22095 [lang] Javadoc, tests improvements for CharSet, CharSetUtils
+22098 [lang] Improve util.Validate tests
+22245 [lang] test.time fails in Japanese (non-us) locale.
+22286 [lang] Missing @since tags
+22367 Typo in documentation
+22386 [lang] Improve javadoc and overflow behavior of Fraction
+
+
+DEPRECATIONS:
+
+lang:
+ NumberRange:
+ now deprecated, see math subpackage
+ NumberUtils:
+ now deprecated, see math subpackage
+
+
+CHANGES: [In 'diff' format]
+
+Jar changes
+===========
+> org.apache.commons.lang.math.Range
+> org.apache.commons.lang.math.FloatRange
+> org.apache.commons.lang.math.NumberUtils
+> org.apache.commons.lang.math.JVMRandom
+> org.apache.commons.lang.math.IntRange
+> org.apache.commons.lang.math.LongRange
+> org.apache.commons.lang.math.DoubleRange
+> org.apache.commons.lang.math.NumberRange
+> org.apache.commons.lang.math.Fraction
+> org.apache.commons.lang.math.RandomUtils
+> org.apache.commons.lang.time.FastDateFormat
+> org.apache.commons.lang.time.DateUtils$DateIterator
+> org.apache.commons.lang.time.DateUtils
+> org.apache.commons.lang.time.FastDateFormat$UnpaddedMonthField
+> org.apache.commons.lang.time.FastDateFormat$StringLiteral
+> org.apache.commons.lang.time.FastDateFormat$TwelveHourField
+> org.apache.commons.lang.time.FastDateFormat$NumberRule
+> org.apache.commons.lang.time.FastDateFormat$CharacterLiteral
+> org.apache.commons.lang.time.FastDateFormat$TimeZoneNumberRule
+> org.apache.commons.lang.time.FastDateFormat$TimeZoneNameRule
+> org.apache.commons.lang.time.DateFormatUtils
+> org.apache.commons.lang.time.FastDateFormat$TwoDigitMonthField
+> org.apache.commons.lang.time.DurationFormatUtils
+> org.apache.commons.lang.time.FastDateFormat$TimeZoneDisplayKey
+> org.apache.commons.lang.time.FastDateFormat$UnpaddedNumberField
+> org.apache.commons.lang.time.FastDateFormat$PaddedNumberField
+> org.apache.commons.lang.time.StopWatch
+> org.apache.commons.lang.time.FastDateFormat$TwentyFourHourField
+> org.apache.commons.lang.time.FastDateFormat$Rule
+> org.apache.commons.lang.time.FastDateFormat$TwoDigitNumberField
+> org.apache.commons.lang.time.FastDateFormat$TextField
+> org.apache.commons.lang.time.FastDateFormat$Pair
+> org.apache.commons.lang.time.FastDateFormat$TwoDigitYearField
+> org.apache.commons.lang.util.IdentifierUtils$StringNumericIdentifierFactory
+> org.apache.commons.lang.util.IdentifierUtils$StringSessionIdentifierFactory
+> org.apache.commons.lang.util.IdentifierUtils$LongNumericIdentifierFactory
+> org.apache.commons.lang.util.IdentifierUtils$StringAlphanumericIdentifierFactory
+> org.apache.commons.lang.util.Validate
+> org.apache.commons.lang.util.LongIdentifierFactory
+> org.apache.commons.lang.util.IdentifierUtils$1
+> org.apache.commons.lang.util.StringIdentifierFactory
+> org.apache.commons.lang.util.IdentifierUtils
+> org.apache.commons.lang.util.IdentifierFactory
+> org.apache.commons.lang.util.BitField
+> org.apache.commons.lang.Entities
+> org.apache.commons.lang.Entities$LookupEntityMap
+> org.apache.commons.lang.NotImplementedException
+> org.apache.commons.lang.NullArgumentException
+< org.apache.commons.lang.ObjectUtils$1
+---
+> org.apache.commons.lang.StringPrintWriter
+> org.apache.commons.lang.UnhandledException
+> org.apache.commons.lang.Entities$HashEntityMap
+> org.apache.commons.lang.Entities$ArrayEntityMap
+> org.apache.commons.lang.Entities$EntityMap
+> org.apache.commons.lang.IntHashMap
+> org.apache.commons.lang.BooleanUtils
+> org.apache.commons.lang.IncompleteArgumentException
+> org.apache.commons.lang.Entities$PrimitiveEntityMap
+> org.apache.commons.lang.Entities$TreeEntityMap
+> org.apache.commons.lang.WordUtils
+> org.apache.commons.lang.StringEscapeUtils
+> org.apache.commons.lang.ArrayUtils
+> org.apache.commons.lang.Entities$BinaryEntityMap
+> org.apache.commons.lang.ClassUtils
+> org.apache.commons.lang.IntHashMap$Entry
+> org.apache.commons.lang.IllegalClassException
+> org.apache.commons.lang.builder.ReflectionToStringBuilder$1
+> org.apache.commons.lang.builder.ReflectionToStringBuilder
+> org.apache.commons.lang.Entities$MapIntMap
+
+
+Class changes
+=============
+org.apache.commons.lang.enum.EnumUtils
+--------------------
+< public abstract class org.apache.commons.lang.enum.EnumUtils extends java.lang.Object implements java.lang.Comparable, java.io.Serializable {
+---
+> public class org.apache.commons.lang.enum.EnumUtils extends java.lang.Object {
+> public org.apache.commons.lang.enum.EnumUtils();
+
+org.apache.commons.lang.enum.Enum$Entry
+--------------------
+> final java.util.Map unmodifiableMap;
+> final java.util.List unmodifiableList;
+
+org.apache.commons.lang.enum.Enum
+--------------------
+> protected transient java.lang.String iToString;
+> static java.lang.Class class$org$apache$commons$lang$enum$ValuedEnum;
+> public java.lang.Class getEnumClass();
+
+org.apache.commons.lang.enum.ValuedEnum
+--------------------
+> static {};
+
+org.apache.commons.lang.StringUtils
+--------------------
+> public static final java.lang.String EMPTY;
+> public static boolean isEmpty(java.lang.String);
+> public static boolean isNotEmpty(java.lang.String);
+> public static boolean isBlank(java.lang.String);
+> public static boolean isNotBlank(java.lang.String);
+< public static java.lang.String deleteSpaces(java.lang.String);
+< public static java.lang.String deleteWhitespace(java.lang.String);
+< public static boolean isNotEmpty(java.lang.String);
+< public static boolean isEmpty(java.lang.String);
+---
+> public static java.lang.String trimToNull(java.lang.String);
+> public static java.lang.String trimToEmpty(java.lang.String);
+> public static java.lang.String strip(java.lang.String);
+> public static java.lang.String stripToNull(java.lang.String);
+> public static java.lang.String stripToEmpty(java.lang.String);
+> public static java.lang.String strip(java.lang.String, java.lang.String);
+> public static java.lang.String stripStart(java.lang.String, java.lang.String);
+> public static java.lang.String stripEnd(java.lang.String, java.lang.String);
+> public static java.lang.String stripAll(java.lang.String[])[];
+> public static java.lang.String stripAll(java.lang.String[], java.lang.String)[];
+> public static int indexOf(java.lang.String, char);
+> public static int indexOf(java.lang.String, char, int);
+> public static int indexOf(java.lang.String, java.lang.String);
+> public static int indexOf(java.lang.String, java.lang.String, int);
+> public static int lastIndexOf(java.lang.String, char);
+> public static int lastIndexOf(java.lang.String, char, int);
+> public static int lastIndexOf(java.lang.String, java.lang.String);
+> public static int lastIndexOf(java.lang.String, java.lang.String, int);
+> public static boolean contains(java.lang.String, char);
+> public static boolean contains(java.lang.String, java.lang.String);
+> public static int indexOfAny(java.lang.String, char[]);
+> public static int indexOfAny(java.lang.String, java.lang.String);
+> public static int indexOfAnyBut(java.lang.String, char[]);
+> public static int indexOfAnyBut(java.lang.String, java.lang.String);
+> public static boolean containsOnly(java.lang.String, char[]);
+> public static boolean containsOnly(java.lang.String, java.lang.String);
+> public static boolean containsNone(java.lang.String, char[]);
+> public static boolean containsNone(java.lang.String, java.lang.String);
+> public static java.lang.String substringBefore(java.lang.String, java.lang.String);
+> public static java.lang.String substringAfter(java.lang.String, java.lang.String);
+> public static java.lang.String substringBeforeLast(java.lang.String, java.lang.String);
+> public static java.lang.String substringAfterLast(java.lang.String, java.lang.String);
+> public static java.lang.String substringBetween(java.lang.String, java.lang.String);
+> public static java.lang.String substringBetween(java.lang.String, java.lang.String, java.lang.String);
+> public static java.lang.String getNestedString(java.lang.String, java.lang.String);
+> public static java.lang.String getNestedString(java.lang.String, java.lang.String, java.lang.String);
+> public static java.lang.String split(java.lang.String, char)[];
+> public static java.lang.String join(java.lang.Object[]);
+> public static java.lang.String join(java.lang.Object[], char);
+> public static java.lang.String join(java.util.Iterator, char);
+> public static java.lang.String deleteSpaces(java.lang.String);
+> public static java.lang.String deleteWhitespace(java.lang.String);
+> public static java.lang.String replaceChars(java.lang.String, char, char);
+> public static java.lang.String replaceChars(java.lang.String, java.lang.String, java.lang.String);
+< public static java.lang.String center(java.lang.String, int);
+< public static java.lang.String center(java.lang.String, int, java.lang.String);
+---
+> public static java.lang.String overlay(java.lang.String, java.lang.String, int, int);
+> public static java.lang.String rightPad(java.lang.String, int, char);
+> public static java.lang.String leftPad(java.lang.String, int, char);
+< public static java.lang.String strip(java.lang.String);
+< public static java.lang.String strip(java.lang.String, java.lang.String);
+< public static java.lang.String stripAll(java.lang.String[])[];
+< public static java.lang.String stripAll(java.lang.String[], java.lang.String)[];
+< public static java.lang.String stripEnd(java.lang.String, java.lang.String);
+< public static java.lang.String stripStart(java.lang.String, java.lang.String);
+---
+> public static java.lang.String center(java.lang.String, int);
+> public static java.lang.String center(java.lang.String, int, char);
+> public static java.lang.String center(java.lang.String, int, java.lang.String);
+< public static java.lang.String uncapitalise(java.lang.String);
+---
+> public static java.lang.String capitalize(java.lang.String);
+> public static java.lang.String uncapitalize(java.lang.String);
+> public static java.lang.String uncapitalise(java.lang.String);
+< public static java.lang.String getNestedString(java.lang.String, java.lang.String);
+< public static java.lang.String getNestedString(java.lang.String, java.lang.String, java.lang.String);
+> public static boolean isWhitespace(java.lang.String);
+> public static java.lang.String reverseDelimited(java.lang.String, char);
+> public static java.lang.String abbreviate(java.lang.String, int);
+> public static java.lang.String abbreviate(java.lang.String, int, int);
+> public static java.lang.String difference(java.lang.String, java.lang.String);
+> public static int differenceAt(java.lang.String, java.lang.String);
+< public static boolean containsOnly(java.lang.String, char[]);
+---
+> static {};
+
+org.apache.commons.lang.ObjectUtils
+--------------------
+> public static java.lang.StringBuffer appendIdentityToString(java.lang.StringBuffer, java.lang.Object);
+> public static java.lang.String toString(java.lang.Object);
+> public static java.lang.String toString(java.lang.Object, java.lang.String);
+< org.apache.commons.lang.ObjectUtils.Null(org.apache.commons.lang.ObjectUtils$1);
+---
+> org.apache.commons.lang.ObjectUtils.Null();
+> static {};
+
+org.apache.commons.lang.exception.NestableDelegate
+--------------------
+> public static boolean topDown;
+> public static boolean trimStackFrames;
+< org.apache.commons.lang.exception.NestableDelegate(org.apache.commons.lang.exception.Nestable);
+< java.lang.String getMessage(int);
+< java.lang.String getMessage(java.lang.String);
+< java.lang.String getMessages()[];
+< java.lang.Throwable getThrowable(int);
+< int getThrowableCount();
+< java.lang.Throwable getThrowables()[];
+< int indexOfThrowable(java.lang.Class, int);
+---
+> public org.apache.commons.lang.exception.NestableDelegate(org.apache.commons.lang.exception.Nestable);
+> public java.lang.String getMessage(int);
+> public java.lang.String getMessage(java.lang.String);
+> public java.lang.String getMessages()[];
+> public java.lang.Throwable getThrowable(int);
+> public int getThrowableCount();
+> public java.lang.Throwable getThrowables()[];
+> public int indexOfThrowable(java.lang.Class, int);
+> protected java.lang.String getStackFrames(java.lang.Throwable)[];
+> protected void trimStackFrames(java.util.List);
+
+org.apache.commons.lang.exception.ExceptionUtils
+--------------------
+< protected static final java.lang.String CAUSE_METHOD_NAMES[];
+< protected static final java.lang.Object CAUSE_METHOD_PARAMS[];
+---
+> static final java.lang.String WRAPPED_MARKER;
+< protected org.apache.commons.lang.exception.ExceptionUtils();
+---
+> public org.apache.commons.lang.exception.ExceptionUtils();
+> public static void addCauseMethodName(java.lang.String);
+> public static boolean isThrowableNested();
+> public static boolean isNestedThrowable(java.lang.Throwable);
+> public static void printRootCauseStackTrace(java.lang.Throwable);
+> public static void printRootCauseStackTrace(java.lang.Throwable, java.io.PrintStream);
+> public static void printRootCauseStackTrace(java.lang.Throwable, java.io.PrintWriter);
+> public static java.lang.String getRootCauseStackTrace(java.lang.Throwable)[];
+> public static void removeCommonFrames(java.util.List, java.util.List);
+> public static java.lang.String getFullStackTrace(java.lang.Throwable);
+> static java.util.List getStackFrameList(java.lang.Throwable);
+
+org.apache.commons.lang.CharRange
+--------------------
+< class org.apache.commons.lang.CharRange extends java.lang.Object {
+---
+> public final class org.apache.commons.lang.CharRange extends java.lang.Object implements java.io.Serializable {
+> public org.apache.commons.lang.CharRange(char,boolean);
+< public org.apache.commons.lang.CharRange(java.lang.String,java.lang.String);
+---
+> public org.apache.commons.lang.CharRange(char,char,boolean);
+< public void setStart(char);
+< public void setEnd(char);
+< public boolean isRange();
+< public boolean inRange(char);
+< public void setNegated(boolean);
+---
+> public boolean contains(char);
+> public boolean contains(org.apache.commons.lang.CharRange);
+> public boolean equals(java.lang.Object);
+> public int hashCode();
+> static {};
+
+org.apache.commons.lang.ObjectUtils$1
+--------------------
+< Compiled from ObjectUtils.java
+< class org.apache.commons.lang.ObjectUtils$1 extends java.lang.Object {
+< }
+---
+> Class 'org.apache.commons.lang.ObjectUtils$1' has been removed
+
+org.apache.commons.lang.ObjectUtils$Null
+--------------------
+< org.apache.commons.lang.ObjectUtils.Null(org.apache.commons.lang.ObjectUtils$1);
+---
+> org.apache.commons.lang.ObjectUtils.Null();
+> static {};
+
+org.apache.commons.lang.SystemUtils
+--------------------
+> public static final java.lang.String FILE_ENCODING;
+> public static final java.lang.String JAVA_RUNTIME_NAME;
+> public static final java.lang.String JAVA_RUNTIME_VERSION;
+> public static final java.lang.String JAVA_VM_INFO;
+> public static final java.lang.String USER_COUNTRY;
+> public static final java.lang.String USER_LANGUAGE;
+> public static final float JAVA_VERSION_FLOAT;
+> public static final int JAVA_VERSION_INT;
+> public static final boolean IS_OS_AIX;
+> public static final boolean IS_OS_HP_UX;
+> public static final boolean IS_OS_IRIX;
+> public static final boolean IS_OS_LINUX;
+> public static final boolean IS_OS_MAC;
+> public static final boolean IS_OS_MAC_OSX;
+> public static final boolean IS_OS_OS2;
+> public static final boolean IS_OS_SOLARIS;
+> public static final boolean IS_OS_SUN_OS;
+> public static final boolean IS_OS_WINDOWS;
+> public static final boolean IS_OS_WINDOWS_2000;
+> public static final boolean IS_OS_WINDOWS_95;
+> public static final boolean IS_OS_WINDOWS_98;
+> public static final boolean IS_OS_WINDOWS_ME;
+> public static final boolean IS_OS_WINDOWS_NT;
+> public static final boolean IS_OS_WINDOWS_XP;
+> public static boolean isJavaVersionAtLeast(int);
+
+org.apache.commons.lang.SerializationUtils
+--------------------
+> public org.apache.commons.lang.SerializationUtils();
+
+org.apache.commons.lang.RandomStringUtils
+--------------------
+> public static java.lang.String random(int, int, int, boolean, boolean, char[], java.util.Random);
+
+org.apache.commons.lang.CharSet
+--------------------
+< public class org.apache.commons.lang.CharSet extends java.lang.Object {
+---
+> public class org.apache.commons.lang.CharSet extends java.lang.Object implements java.io.Serializable {
+> public static final org.apache.commons.lang.CharSet EMPTY;
+> public static final org.apache.commons.lang.CharSet ASCII_ALPHA;
+> public static final org.apache.commons.lang.CharSet ASCII_ALPHA_LOWER;
+> public static final org.apache.commons.lang.CharSet ASCII_ALPHA_UPPER;
+> public static final org.apache.commons.lang.CharSet ASCII_NUMERIC;
+> protected static final java.util.Map COMMON;
+> public static org.apache.commons.lang.CharSet getInstance(java.lang.String);
+> protected org.apache.commons.lang.CharSet(java.lang.String);
+< public boolean contains(char);
+> public org.apache.commons.lang.CharRange getCharRanges()[];
+> public boolean contains(char);
+> public boolean equals(java.lang.Object);
+> public int hashCode();
+> static {};
+
+org.apache.commons.lang.CharSetUtils
+--------------------
+> public static java.lang.String keep(java.lang.String, java.lang.String);
+> public static java.lang.String keep(java.lang.String, java.lang.String[]);
+
+org.apache.commons.lang.builder.ToStringBuilder
+--------------------
+< public org.apache.commons.lang.builder.ToStringBuilder(java.lang.Object);
+< public org.apache.commons.lang.builder.ToStringBuilder(java.lang.Object,org.apache.commons.lang.builder.ToStringStyle);
+< public org.apache.commons.lang.builder.ToStringBuilder(java.lang.Object,org.apache.commons.lang.builder.ToStringStyle,java.lang.StringBuffer);
+< public static void setDefaultStyle(org.apache.commons.lang.builder.ToStringStyle);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.Object);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, java.lang.Object);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, java.lang.Object, boolean);
+< public org.apache.commons.lang.builder.ToStringBuilder append(long);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, long);
+< public org.apache.commons.lang.builder.ToStringBuilder append(int);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, int);
+< public org.apache.commons.lang.builder.ToStringBuilder append(short);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, short);
+< public org.apache.commons.lang.builder.ToStringBuilder append(char);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, char);
+---
+> public static java.lang.String reflectionToString(java.lang.Object, org.apache.commons.lang.builder.ToStringStyle, boolean, java.lang.Class);
+> public static void setDefaultStyle(org.apache.commons.lang.builder.ToStringStyle);
+> public org.apache.commons.lang.builder.ToStringBuilder(java.lang.Object);
+> public org.apache.commons.lang.builder.ToStringBuilder(java.lang.Object,org.apache.commons.lang.builder.ToStringStyle);
+> public org.apache.commons.lang.builder.ToStringBuilder(java.lang.Object,org.apache.commons.lang.builder.ToStringStyle,java.lang.StringBuffer);
+> public org.apache.commons.lang.builder.ToStringBuilder append(boolean);
+> public org.apache.commons.lang.builder.ToStringBuilder append(boolean[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, byte);
+---
+> public org.apache.commons.lang.builder.ToStringBuilder append(byte[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(char);
+> public org.apache.commons.lang.builder.ToStringBuilder append(char[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, double);
+---
+> public org.apache.commons.lang.builder.ToStringBuilder append(double[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, float);
+< public org.apache.commons.lang.builder.ToStringBuilder append(boolean);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, boolean);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.Object[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, java.lang.Object[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, java.lang.Object[], boolean);
+< public org.apache.commons.lang.builder.ToStringBuilder append(long[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, long[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, long[], boolean);
+---
+> public org.apache.commons.lang.builder.ToStringBuilder append(float[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(int);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, int[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, int[], boolean);
+---
+> public org.apache.commons.lang.builder.ToStringBuilder append(long);
+> public org.apache.commons.lang.builder.ToStringBuilder append(long[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.Object);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.Object[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(short);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, short[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, short[], boolean);
+< public org.apache.commons.lang.builder.ToStringBuilder append(char[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, char[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, char[], boolean);
+< public org.apache.commons.lang.builder.ToStringBuilder append(byte[]);
+---
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, boolean);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, boolean[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, boolean[], boolean);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, byte);
+< public org.apache.commons.lang.builder.ToStringBuilder append(double[]);
+---
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, char);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, char[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, char[], boolean);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, double);
+< public org.apache.commons.lang.builder.ToStringBuilder append(float[]);
+---
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, float);
+< public org.apache.commons.lang.builder.ToStringBuilder append(boolean[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, boolean[]);
+< public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, boolean[], boolean);
+---
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, int);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, int[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, int[], boolean);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, long);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, long[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, long[], boolean);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, java.lang.Object);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, java.lang.Object, boolean);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, java.lang.Object[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, java.lang.Object[], boolean);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, short);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, short[]);
+> public org.apache.commons.lang.builder.ToStringBuilder append(java.lang.String, short[], boolean);
+> public org.apache.commons.lang.builder.ToStringBuilder appendAsObjectToString(java.lang.Object);
+> public org.apache.commons.lang.builder.ToStringBuilder appendSuper(java.lang.String);
+> public org.apache.commons.lang.builder.ToStringBuilder appendToString(java.lang.String);
+> public org.apache.commons.lang.builder.ToStringStyle getStyle();
+> public java.lang.Object getObject();
+
+org.apache.commons.lang.builder.StandardToStringStyle
+--------------------
+> public boolean isUseShortClassName();
+> public void setUseShortClassName(boolean);
+> public boolean isFieldSeparatorAtStart();
+> public void setFieldSeparatorAtStart(boolean);
+> public boolean isFieldSeparatorAtEnd();
+> public void setFieldSeparatorAtEnd(boolean);
+
+org.apache.commons.lang.builder.ToStringStyle
+--------------------
+> public void appendSuper(java.lang.StringBuffer, java.lang.String);
+> public void appendToString(java.lang.StringBuffer, java.lang.String);
+> protected void removeLastFieldSeparator(java.lang.StringBuffer);
+> protected void reflectionAppendArrayDetail(java.lang.StringBuffer, java.lang.String, java.lang.Object);
+> protected boolean isUseShortClassName();
+> protected void setUseShortClassName(boolean);
+> protected boolean isFieldSeparatorAtStart();
+> protected void setFieldSeparatorAtStart(boolean);
+> protected boolean isFieldSeparatorAtEnd();
+> protected void setFieldSeparatorAtEnd(boolean);
+
+org.apache.commons.lang.builder.HashCodeBuilder
+--------------------
+> public static int reflectionHashCode(int, int, java.lang.Object, boolean, java.lang.Class);
+> public org.apache.commons.lang.builder.HashCodeBuilder appendSuper(int);
+
+org.apache.commons.lang.builder.CompareToBuilder
+--------------------
+> public static int reflectionCompare(java.lang.Object, java.lang.Object, boolean, java.lang.Class);
+> public org.apache.commons.lang.builder.CompareToBuilder appendSuper(int);
+> public org.apache.commons.lang.builder.CompareToBuilder append(java.lang.Object, java.lang.Object, java.util.Comparator);
+> public org.apache.commons.lang.builder.CompareToBuilder append(java.lang.Object[], java.lang.Object[], java.util.Comparator);
+
+org.apache.commons.lang.builder.EqualsBuilder
+--------------------
+> public static boolean reflectionEquals(java.lang.Object, java.lang.Object, boolean, java.lang.Class);
+> public org.apache.commons.lang.builder.EqualsBuilder appendSuper(boolean);
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-2.1.txt b/src/site/resources/release-notes/RELEASE-NOTES-2.1.txt
new file mode 100644
index 000000000..d208a7f6b
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-2.1.txt
@@ -0,0 +1,150 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 2.1
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 2.1 version of Apache Jakarta Commons Lang.
+Commons Lang is a set of utility functions and reusable components that
+should be of use in any Java environment.
+
+
+INCOMPATIBLE CHANGES:
+
+- The Nestable interface defines the method indexOfThrowable(Class).
+Previously the implementations checked only for a specific Class.
+Now they check for subclasses of that Class as well.
+For most situations this will be the expected behavior (i.e. it's a bug fix).
+If it causes problems, please use the ExceptionUtils.indexOfThrowable(Class) method instead.
+Note that the ExceptionUtils method is available in v1.0 and v2.0 of commons-lang and has not been changed.
+(An alternative to this is to change the public static matchSubclasses flag on NestableDelegate.
+However, we don't recommend that as a long-term solution.)
+
+- The StopWatch class has had much extra validation added.
+If your code previously relied on unusual aspects, it may no longer work.
+
+- Starting with version 2.1, Ant version 1.6.x is required to build. Copy
+junit.jar to ANT_HOME/lib. You can get JUnit from https://www.junit.org. See the developer's guide
+for more details.
+
+
+DEPRECATIONS:
+
+- The enum package has been renamed to enums for JDK 1.5 compliance.
+All functionality is identical, just the package has changed.
+This package will be removed in v3.0.
+
+- NumberUtils.stringToInt - renamed to toInt
+
+- DateUtils - four constants, MILLIS_IN_* have been deprecated as they were defined
+as int not long. The replacements are MILLIS_PER_*.
+
+
+NEW FEATURES:
+
+New:
+- Mutable package - contains basic classes that hold an Object or primitive
+and provide both get and set methods.
+- DurationFormatUtils - provides various methods for formatting durations
+- CharEncoding - definitions of constants for character encoding work
+- CharUtils - utilities for working with characters
+
+Updated:
+- ArrayUtils - many more methods, especially List-like methods
+- BooleanUtils - isTrue and isFalse methods that handle null
+- ClassUtils - primitive to wrapper class conversion methods
+- ClassUtils - class name comparator
+- IllegalClassException - extra constructor for common instanceof case
+- NotImplementedException - supports nested exceptions
+- ObjectUtils - hashcode method handling null
+- StringUtils - isAsciiPrintable to check the contents of a string
+ -- ordinalIndexOf to find the nth index of a string
+ -- various remove methods to remove parts of a string
+ -- various split methods to provide more control over splitting a string
+ -- defaultIfEmpty to default a string if null or empty
+- SystemUtils - methods to get system properties as File objects
+ -- extra constants representing system properties
+- Validate - new methods to check whether all elements in a collection are of a specific type
+- WordUtils - new methods to capitalize based on a set of specified delimiters
+
+- EqualsBuilder - now provides setter to internal state
+- ToStringStyle - new style, short prefix style
+- ReflectionToStringBuilder - more flags to control the output with regards to statics
+
+- ExceptionUtils - added indexOfType methods that check subclasses, thus leaving the existing
+indexOfThrowable method untouched (see incompatible changes section)
+
+- NumberUtils - various string to number parsing methods added
+
+- DateUtils - methods added to compare dates in various ways
+ -- method to parse a date string using multiple patterns
+- FastDateFormat - extra formatting methods that take in a millisecond long value
+ -- additional static factory methods
+- StopWatch - new methods for split behavior
+
+
+BUG FIXES:
+
+19331 General case: infinite loop: ToStringBuilder.reflectionToString
+23174 EqualsBuilder.append(Object[], Object[]) throws NPE
+23356 Make DurationFormatUtils public!
+23557 WordUtils.capitalizeFully(String str) should take a delimiters
+23683 New method for converting a primitive Class to its corresponding wrapper
+23430 Minor javadoc fixes for StringUtils.contains(String, String)
+23590 make optional parameters in FastDateFormat really optional
+24056 Documentation error in StringUtils.replace
+25227 StringEscapeUtils.unescapeHtml() doesn't handle hex entities
+25454 new StringUtils.replaceChars behaves differently from old Ch
+25560 DateUtils.truncate() is off by one hour when using a date in DST switch 'zone'
+25627 DateUtils constants should be long
+25683 Add method that validates Collection elements are a correct
+25849 Add SystemUtils methods for directory properties.
+26616 ClassCastException in Enum.equals(Object)
+26699 Tokenizer Enhancements: reset input string, static CSV
+26734 NullPointerException in EqualsBuilder.append(Object[], Object[])
+26877 Add SystemUtils.AWT_TOOLKIT and others.
+26922 public static boolean DateUtils.equals(Date dt1, Date dt2)
+27592 WordUtils capitalize improvement
+27876 ReflectionToStringBuilder.toString(null) throws exception by design
+27877 Make ClassUtils methods null-safe and not throw an IAE.
+28468 StringUtils.defaultString: Documentation error
+28554 Add hashCode-support to class ObjectUtils
+29082 Enhancement of ExceptionUtils.CAUSE_METHOD_NAMES
+29149 StringEscapeUtils.unescapeHtml() doesn't handle an empty entity
+29294 lang.math.Fraction class deficiencies
+29673 ExceptionUtils: new getCause() methodname (for tomcat)
+29794 Add convenience format(long) methods to FastDateForma
+30328 HashCodeBuilder does not use the same values as Boolean (fixed as documentation)
+30334 New class proposal: CharacterEncoding
+30674 parseDate class from HttpClient's DateParser class
+30815 ArrayUtils.isEquals() throws ClassCastException when array1
+30929 Nestable.indexOfThrowable(Class) uses Class.equals() to match
+31395 DateUtils.truncate oddity at the far end of the Date spectrum
+31478 Compile error with JDK 5 "enum" is a keyword
+31572 o.a.c.lang.enum.ValuedEnum: 'enum' is a keyword in JDK 1.5.0
+31933 ToStringStyle setArrayEnd handled null incorrectly
+32133 SystemUtils fails init on HP-UX
+32198 Error in Javadoc for StringUtils.chomp(String, String)
+32625 Can't subclass EqualsBuilder because isEquals is private
+33067 EqualsBuilder.append(Object[], Object[]) crashes with a NullPointerException if an element of the first array is null
+33069 EqualsBuilder.append(Object[], Object[]) incorrectly checks that rhs[i] is instance of lhs[i]'s class
+33574 unbalanced ReflectionToStringBuilder
+33737 ExceptionUtils.addCauseMethodName(String) does not check for duplicates.
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-2.2.txt b/src/site/resources/release-notes/RELEASE-NOTES-2.2.txt
new file mode 100644
index 000000000..cec550f35
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-2.2.txt
@@ -0,0 +1,127 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 2.2
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 2.2 version of Apache Jakarta Commons Lang.
+Commons Lang is a set of utility functions and reusable components that
+should be of use in any Java environment.
+
+INCOMPATIBLE CHANGES WITH VERSION 2.1:
+
+- None
+
+ADDITIONAL INCOMPATIBLE CHANGES WITH VERSION 2.0:
+
+- The Nestable interface defines the method indexOfThrowable(Class).
+Previously the implementations checked only for a specific Class.
+Now they check for subclasses of that Class as well.
+For most situations this will be the expected behavior (i.e. it's a bug fix).
+If it causes problems, please use the ExceptionUtils.indexOfThrowable(Class) method instead.
+Note that the ExceptionUtils method is available in v1.0 and v2.0 of commons-lang and has not been changed.
+(An alternative to this is to change the public static matchSubclasses flag on NestableDelegate.
+However, we don't recommend that as a long-term solution.)
+
+- The StopWatch class has had much extra validation added.
+If your code previously relied on unusual aspects, it may no longer work.
+
+- Starting with version 2.1, Ant version 1.6.x is required to build. Copy
+junit.jar to ANT_HOME/lib. You can get JUnit from https://www.junit.org. See the developer's guide
+for more details.
+
+DEPRECATIONS FROM 2.1 to 2.2:
+
+- None
+
+DEPRECATIONS FROM 2.0 to 2.1:
+
+- The enum package has been renamed to enums for JDK 1.5 compliance.
+All functionality is identical, just the package has changed.
+This package will be removed in v3.0.
+
+- NumberUtils.stringToInt - renamed to toInt
+
+- DateUtils - four constants, MILLIS_IN_* have been deprecated as they were defined
+as int not long. The replacements are MILLIS_PER_*.
+
+
+BUG FIXES IN 2.2:
+
+LANG-2 javadoc example for StringUtils.splitByWholeSeparator incorrect
+LANG-3 PADDING array in StringUtils overflows on '\uffff'
+LANG-10 [patch] ClassUtils.primitiveToWrapper and Void
+LANG-21 escapeXML() -> Not escaping low characters
+LANG-25 DurationFormatUtils.formatDurationISO() javadoc is missing T in duration string between date and time part
+LANG-37 unit test for org.apache.commons.lang.text.StrBuilder
+LANG-42 EqualsBuilder.append(Object[], Object[]) crashes with a NullPointerException if an element of the first array is null
+LANG-45 StrBuilderTest#testReplaceStringString fails.
+LANG-50 Replace Clover with Cobertura
+LANG-59 DateUtils.truncate method is buggy when dealing with DST switching hours
+LANG-100 RandomStringUtils.random() family of methods create invalid unicode sequences
+LANG-105 ExceptionUtils goes into infinite loop in getThrowables is throwable.getCause() == throwable
+LANG-106 StringUtils#getLevenshteinDistance() performance is suboptimal
+LANG-112 Wrong length check in StrTokenizer.StringMatcher
+LANG-117 FastDateFormat: wrong format for date "01.01.1000"
+LANG-122 EscapeUtil.escapeHtml() should clarify that it does not escape ' chars to &apos;
+LANG-123 Unclear javadoc for DateUtils.iterator()
+LANG-127 Minor tweak to fix of bug # 26616
+LANG-130 Memory "leak" in StringUtils
+LANG-140 DurationFormatUtils.formatPeriod() returns the wrong result
+LANG-141 Fraction.toProperString() returns -1/1 for -1
+LANG-148 Performance modifications on StringUtils.replace
+LANG-150 StringEscapeUtils.unescapeHtml skips first entity after standalone ampersand
+LANG-152 DurationFormatUtils.formatDurationWords "11 <unit>s" gets converted to "11 <unit>"
+LANG-259 ValuedEnum.compareTo(Object other) not typesafe - it easily could be...
+LANG-261 Error in an example in the javadoc of the StringUtils.splitPreserveAllTokens() method
+LANG-264 ToStringBuilder/HashCodeBuilder javadoc code examples
+LANG-271 LocaleUtils test fails under Mustang
+LANG-272 Minor build and checkstyle changes
+LANG-277 Javadoc errors on StringUtils.splitPreserveAllTokens(String, char)
+LANG-278 javadoc for StringUtils.removeEnd is incorrect
+
+IMPROVEMENTS IN 2.2:
+
+LANG-159 Add WordUtils.getInitials(String)
+LANG-161 Add methods and tests to StrBuilder
+LANG-162 replace() length calculation improvement
+LANG-165 parseDate with TimeZone
+LANG-166 New interpolation features
+LANG-169 Implementation of escape/unescapeHtml methods with Writer
+LANG-176 CompareToBuilder excludeFields for reflection method
+LANG-186 Request for MutableBoolean implementation
+LANG-194 add generic add method to DateUtils
+LANG-198 New method for EqualsBuilder
+LANG-212 New ExceptionUtils method setCause()
+LANG-216 Provides a Class.getPublicMethod which returns public invocable Method
+LANG-217 Add Mutable<Type> to<Type>() methods.
+LANG-220 Tokenizer Enhancements: reset input string, static CSV/TSV factories
+LANG-226 Using ReflectionToStringBuilder and excluding secure fields
+LANG-242 Trivial cleanup of javadoc in various files
+LANG-246 CompositeFormat
+LANG-250 Performance boost for RandomStringUtils
+LANG-254 Enhanced Class.forName version
+LANG-260 StringEscapeUtils should expose escape*() methods taking Writer argument
+LANG-263 Add StringUtils.containsIgnoreCase(...)
+LANG-267 Support char array converters on ArrayUtils
+LANG-270 minor javadoc improvements for StringUtils.stripXxx() methods
+ New ExceptionUtils methods getMessage/getRootCauseMessage
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-2.3.txt b/src/site/resources/release-notes/RELEASE-NOTES-2.3.txt
new file mode 100644
index 000000000..04697723b
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-2.3.txt
@@ -0,0 +1,105 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 2.3
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 2.3 version of Apache
+Jakarta Commons Lang.
+Commons Lang is a set of utility functions and reusable components that
+should be of use in any Java environment.
+
+INCOMPATIBLE CHANGES WITH VERSION 2.2:
+
+- Calling stop on a suspended StopWatch will no longer change the underlying time.
+ It's very unlikely anyone was relying on that bug as a feature.
+
+ADDITIONAL INCOMPATIBLE CHANGES WITH VERSION 2.0:
+
+- The Nestable interface defines the method indexOfThrowable(Class).
+Previously the implementations checked only for a specific Class.
+Now they check for subclasses of that Class as well.
+For most situations this will be the expected behavior (i.e. it's a bug fix).
+If it causes problems, please use the ExceptionUtils.indexOfThrowable(Class) method instead.
+Note that the ExceptionUtils method is available in v1.0 and v2.0 of commons-lang and has not been changed.
+(An alternative to this is to change the public static matchSubclasses flag on NestableDelegate.
+However, we don't recommend that as a long-term solution.)
+
+- The StopWatch class has had much extra validation added.
+If your code previously relied on unusual aspects, it may no longer work.
+
+- Starting with version 2.1, Ant version 1.6.x is required to build. Copy
+junit.jar to ANT_HOME/lib. You can get JUnit from https://www.junit.org. See the developer's guide
+for more details.
+
+DEPRECATIONS FROM 2.2 to 2.3:
+
+- None
+
+DEPRECATIONS FROM 2.1 to 2.2:
+
+- None
+
+DEPRECATIONS FROM 2.0 to 2.1:
+
+- The enum package has been renamed to enums for JDK 1.5 compliance.
+All functionality is identical, just the package has changed.
+This package will be removed in v3.0.
+
+- NumberUtils.stringToInt - renamed to toInt
+
+- DateUtils - four constants, MILLIS_IN_* have been deprecated as they were defined
+as int not long. The replacements are MILLIS_PER_*.
+
+
+BUG FIXES IN 2.3:
+
+ * [LANG-69 ] - ToStringBuilder throws StackOverflowError when an Object cycle exists
+ * [LANG-102] - Refactor Entities methods
+ * [LANG-153] - Can't XMLDecode an Enum
+ * [LANG-262] - Use of enum prevents a classloader from being garbage collected resulting in out of memory exceptions.
+ * [LANG-279] - HashCodeBuilder throws java.lang.StackOverflowError when an object contains a cycle.
+ * [LANG-281] - DurationFormatUtils returns wrong result
+ * [LANG-286] - Serialization - not backwards compatible
+ * [LANG-292] - unescapeXml("&12345678;") should be "&12345678;"
+ * [LANG-294] - StrBuilder.replaceAll and StrBuilder.deleteAll can throw ArrayIndexOutOfBoundsException.
+ * [LANG-295] - StrBuilder contains usages of thisBuf.length when they should use size
+ * [LANG-299] - Bug in method appendFixedWidthPadRight of class StrBuilder causes an ArrayIndexOutOfBoundsException
+ * [LANG-300] - NumberUtils.createNumber throws NumberFormatException for one digit long
+ * [LANG-303] - FastDateFormat.mRules is not transient or serializable
+ * [LANG-304] - NullPointerException in isAvailableLocale(Locale)
+ * [LANG-313] - Wrong behavior of Entities.unescape
+ * [LANG-315] - StopWatch: suspend() acts as split(), if followed by stop()
+
+IMPROVEMENTS IN 2.3:
+
+ * [LANG-258] - Enum Javadoc
+ * [LANG-266] - Wish for StringUtils.join(Collection, *)
+ * [LANG-268] - StringUtils.join should allow you to pass a range for it (so it only joins a part of the array)
+ * [LANG-275] - StringUtils substringsBetween
+ * [LANG-282] - Create more tests to test out the +=31 replacement code in DurationFormatUtils.
+ * [LANG-287] - Optimize StringEscapeUtils.unescapeXml(String)
+ * [LANG-289] - NumberUtils.max(byte[]) and NumberUtils.min(byte[]) are missing
+ * [LANG-291] - Null-safe comparison methods for finding the most recent / least recent dates.
+ * [LANG-306] - StrBuilder appendln/appendAll/appendSeparator
+ * [LANG-310] - BooleanUtils isNotTrue/isNotFalse
+ * [LANG-314] - Tests fail to pass when building with Maven 2
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-2.4.txt b/src/site/resources/release-notes/RELEASE-NOTES-2.4.txt
new file mode 100644
index 000000000..769c640f4
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-2.4.txt
@@ -0,0 +1,139 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 2.4
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 2.4 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any Java environment.
+
+Lang 2.4 no longer attempts to target the Java 1.1 environment and now targets Java 1.2. While previous versions
+were built for 1.1, some parts were using methods that were only available in 1.2, and the Enum class had
+become dependent on Java 1.3.
+
+INCOMPATIBLE CHANGES WITH VERSION 2.3:
+
+- None
+
+INCOMPATIBLE CHANGES WITH VERSION 2.2:
+
+- Calling stop on a suspended StopWatch will no longer change the underlying time.
+ It's very unlikely anyone was relying on that bug as a feature.
+
+ADDITIONAL INCOMPATIBLE CHANGES WITH VERSION 2.0:
+
+- The Nestable interface defines the method indexOfThrowable(Class).
+Previously the implementations checked only for a specific Class.
+Now they check for subclasses of that Class as well.
+For most situations this will be the expected behavior (i.e. it's a bug fix).
+If it causes problems, please use the ExceptionUtils.indexOfThrowable(Class) method instead.
+Note that the ExceptionUtils method is available in v1.0 and v2.0 of commons-lang and has not been changed.
+(An alternative to this is to change the public static matchSubclasses flag on NestableDelegate.
+However, we don't recommend that as a long-term solution.)
+
+- The StopWatch class has had much extra validation added.
+If your code previously relied on unusual aspects, it may no longer work.
+
+- Starting with version 2.1, Ant version 1.6.x is required to build. Copy
+junit.jar to ANT_HOME/lib. You can get JUnit from https://www.junit.org. See the developer's guide
+for more details.
+
+DEPRECATIONS FROM 2.3 to 2.4:
+
+- ObjectUtils.appendIdentityToString(StringBuffer, Object) - has very odd semantics, use
+ ObjectUtils.identityToString(StringBuffer, Object) instead.
+
+- public static java.util.Date add(java.util.Date, int, int) - it is not intended for this
+ method to be public. Please let us know if you use this.
+
+DEPRECATIONS FROM 2.2 to 2.3:
+
+- None
+
+DEPRECATIONS FROM 2.1 to 2.2:
+
+- None
+
+DEPRECATIONS FROM 2.0 to 2.1:
+
+- The enum package has been renamed to enums for JDK 1.5 compliance.
+All functionality is identical, just the package has changed.
+This package will be removed in v3.0.
+
+- NumberUtils.stringToInt - renamed to toInt
+
+- DateUtils - four constants, MILLIS_IN_* have been deprecated as they were defined
+as int not long. The replacements are MILLIS_PER_*.
+
+
+BUG FIXES IN 2.4:
+
+ * [LANG-76 ] - EnumUtils.getEnum() doesn't work well in 1.5
+ * [LANG-328] - LocaleUtils.toLocale() rejects strings with only language+variant
+ * [LANG-334] - Enum is not thread-safe
+ * [LANG-346] - Dates.round() behaves incorrectly for minutes and seconds
+ * [LANG-349] - Deadlock using ReflectionToStringBuilder
+ * [LANG-353] - Javadoc Example for EqualsBuilder is questionable
+ * [LANG-360] - Why does appendIdentityToString return null?
+ * [LANG-361] - BooleanUtils toBooleanObject javadoc does not match implementation
+ * [LANG-363] - StringEscapeUtils..escapeJavaScript() method did not escape '/' into '\/', it will make IE render page incorrectly
+ * [LANG-364] - Documentation bug for ignoreEmptyTokens accessors in StrTokenizer
+ * [LANG-365] - BooleanUtils.toBoolean() - invalid drop-thru in case statement causes StringIndexOutOfBoundsException
+ * [LANG-367] - FastDateFormat thread safety
+ * [LANG-368] - FastDateFormat getDateInstance() and getDateTimeInstance() assume Locale.getDefault() won't change
+ * [LANG-369] - ExceptionUtils not thread-safe
+ * [LANG-372] - ToStringBuilder: MULTI_LINE_STYLE does not print anything from appendToString methods.
+ * [LANG-380] - infinite loop in Fraction.reduce when numerator == 0
+ * [LANG-381] - NumberUtils.min(floatArray) returns wrong value if floatArray[0] happens to be Float.NaN
+ * [LANG-385] - https://commons.apache.org/proper/commons-lang/developerguide.html "Building" section is incorrect and incomplete
+ * [LANG-393] - EqualsBuilder don't compare BigDecimals correctly
+ * [LANG-399] - Javadoc bugs - cannot find object
+ * [LANG-410] - Ambiguous / confusing names in StringUtils replace* methods
+ * [LANG-412] - StrBuilder appendFixedWidth does not handle nulls
+ * [LANG-414] - DateUtils.round() often fails
+
+IMPROVEMENTS IN 2.4:
+
+ * [LANG-180] - adding a StringUtils.replace method that takes an array or List of replacement strings
+ * [LANG-192] - Split camel case strings
+ * [LANG-257] - Add new splitByWholeSeparatorPreserveAllTokens() methods to StringUtils
+ * [LANG-269] - Shouldn't Commons Lang's StringUtils have a "common" string method?
+ * [LANG-298] - ClassUtils.getShortClassName and ClassUtils.getPackageName and class of array
+ * [LANG-321] - Add toArray() method to IntRange and LongRange classes
+ * [LANG-322] - ClassUtils.getShortClassName(String) inefficient
+ * [LANG-326] - StringUtils: startsWith / endsWith / startsWithIgnoreCase / endsWithIgnoreCase / removeStartIgnoreCase / removeEndIgnoreCase methods
+ * [LANG-329] - Pointless synchronized in ThreadLocal.initialValue should be removed
+ * [LANG-333] - ArrayUtils.toClass
+ * [LANG-337] - Utility class constructor javadocs should acknowledge that they may sometimes be used, e.g. with Velocity.
+ * [LANG-338] - truncateNicely method which avoids truncating in the middle of a word
+ * [LANG-345] - Optimize HashCodeBuilder.append(Object)
+ * [LANG-351] - Extension to ClassUtils: Obtain the primitive class from a wrapper
+ * [LANG-356] - Add getStartTime to StopWatch
+ * [LANG-362] - Add ExtendedMessageFormat to org.apache.commons.lang.text
+ * [LANG-371] - ToStringStyle javadoc should show examples of styles
+ * [LANG-374] - Add escaping for CSV columns to StringEscapeUtils
+ * [LANG-375] - add SystemUtils.IS_OS_WINDOWS_VISTA field
+ * [LANG-379] - Calculating A date fragment in any time-unit
+ * [LANG-383] - Adding functionality to DateUtils to allow direct setting of various fields.
+ * [LANG-402] - OSGi-ify Lang
+ * [LANG-404] - Add Calendar flavour format methods to DateFormatUtils
+ * [LANG-407] - StringUtils.length(String) returns null-safe length
+ * [LANG-413] - Memory usage improvement for StringUtils#getLevenshteinDistance()
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-2.5.txt b/src/site/resources/release-notes/RELEASE-NOTES-2.5.txt
new file mode 100644
index 000000000..c489ae479
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-2.5.txt
@@ -0,0 +1,98 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 2.5
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 2.5 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any Java environment.
+
+
+COMPATIBILITY WITH 2.4
+======================
+Lang 2.5 is binary compatible release with Lang 2.4, containing bug fixes and small enhancements.
+
+Lang 2.5 requires a minimum of JDK 1.3.
+
+
+IMPROVEMENTS IN 2.5
+===================
+
+ * [LANG-583] - ArrayUtils - add isNotEmpty() methods
+ * [LANG-534] - ArrayUtils - add nullToEmpty() methods
+ * [LANG-454] - CharRange - provide an iterator that lets you walk the chars in the range
+ * [LANG-514] - CharRange - add more readable static builder methods
+ * [ ] - ClassUtils - new isAssignable() methods with autoboxing
+ * [LANG-535] - ClassUtils - add support to getShortClassName and getPackageName for arrays
+ * [LANG-434] - DateUtils - add ceiling() method
+ * [LANG-486] - DateUtils - add parseDateStrictly() method
+ * [LANG-466] - EqualsBuilder - add reset() method
+ * [LANG-461] - NumberUtils - add toByte() and toShort() methods
+ * [LANG-522] - Mutable numbers - add string constructors
+ * [ ] - MutableBoolean - add toBoolean(), isTrue() and isFalse() methods
+ * [LANG-422] - StrBuilder - add appendSeparator() methods with an alternative default separator if the StrBuilder is currently empty
+ * [LANG-555] - SystemUtils - add IS_OS_WINDOWS_7 constant
+ * [LANG-554] - SystemUtils - add IS_JAVA_1_7 constant for JDK 1.7
+ * [LANG-405] - StringUtils - add abbreviateMiddle() method
+ * [LANG-569] - StringUtils - add indexOfIgnoreCase() and lastIndexOfIgnoreCase() methods
+ * [LANG-471] - StringUtils - add isAllUpperCase() and isAllLowerCase() methods
+ * [LANG-469] - StringUtils - add lastOrdinalIndexOf() method to complement the existing ordinalIndexOf() method
+ * [LANG-438] - StringUtils - add repeat() method
+ * [LANG-445] - StringUtils - add startsWithAny() method
+ * [LANG-430] - StringUtils - add upperCase(String, Locale) and lowerCase(String, Locale) methods
+ * [LANG-416] - New Reflection package containing ConstructorUtils, FieldUtils, MemberUtils and MethodUtils
+
+BUG FIXES IN 2.5
+================
+
+ * [LANG-494] - CharSet - Synchronizing the COMMON Map so that getInstance doesn't miss a put from a subclass in another thread
+ * [LANG-500] - ClassUtils - improving performance of getAllInterfaces
+ * [LANG-587] - ClassUtils - toClass() throws NullPointerException on null array element
+ * [LANG-530] - DateUtils - Fix parseDate() cannot parse ISO8601 dates produced by FastDateFormat
+ * [LANG-440] - DateUtils - round() doesn't work correct for Calendar.AM_PM
+ * [LANG-443] - DateUtils - improve tests
+ * [LANG-204] - Entities - multithreaded initialization
+ * [LANG-506] - Entities - missing final modifiers; thread-safety issues
+ * [LANG-76] - EnumUtils - getEnum() doesn't work well in 1.5+
+ * [LANG-584] - ExceptionUtils - use immutable lock target
+ * [LANG-477] - ExtendedMessageFormat - OutOfMemory with a pattern containing single quotes
+ * [LANG-538] - FastDateFormat - call getTime() on a calendar to ensure timezone is in the right state
+ * [LANG-547] - FastDateFormat - Remove unused field
+ * [LANG-511] - LocaleUtils - initialization of available locales can be deferred
+ * [LANG-457] - NumberUtils - createNumber() throws a StringIndexOutOfBoundsException for "l"
+ * [LANG-521] - NumberUtils - isNumber(String) and createNumber(String) both modified to support '2.'
+ * [LANG-432] - StringUtils - improve handling of case-insensitive Strings
+ * [LANG-552] - StringUtils - replaceEach() no longer NPEs when null appears in the last String[]
+ * [LANG-460] - StringUtils - correct Javadocs for startsWith() and startsWithIgnoreCase()
+ * [LANG-421] - StringEscapeUtils - escapeJava() escapes '/' characters
+ * [LANG-450] - StringEscapeUtils - change escapeJavaStyleString() to throw UnhandledException instead swallowing IOException
+ * [LANG-419] - WordUtils - fix StringIndexOutOfBoundsException when lower is greater than the String length
+ * [LANG-523] - StrBuilder - Performance improvement by doubling the size of the String in ensureCapacity
+ * [LANG-575] - Compare, Equals and HashCode builders - use ArrayUtils to avoid creating a temporary List
+ * [LANG-467] - EqualsBuilder - removing the special handling of BigDecimal (LANG-393) to use compareTo
+ * [LANG-574] - HashCodeBuilder - Performance improvement: check for isArray to short-circuit the 9 instanceof checks
+ * [LANG-520] - HashCodeBuilder - Changing the hashCode() method to return toHashCode()
+ * [LANG-459] - HashCodeBuilder - reflectionHashCode() can generate incorrect hashcodes
+ * [LANG-586] - HashCodeBuilder and ToStringStyle - use of ThreadLocal causes memory leaks in container environments
+ * [LANG-487] - ToStringBuilder - make default style thread-safe
+ * [LANG-472] - RandomUtils - nextLong() always produces even numbers
+ * [LANG-592] - RandomUtils - RandomUtils tests are failing frequently
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-2.6.txt b/src/site/resources/release-notes/RELEASE-NOTES-2.6.txt
new file mode 100644
index 000000000..3f4674830
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-2.6.txt
@@ -0,0 +1,74 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 2.6
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 2.6 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any Java environment.
+
+
+COMPATIBILITY WITH 2.5
+======================
+Lang 2.6 is binary compatible release with Lang 2.5, containing bug fixes and small enhancements.
+
+Lang 2.6 requires a minimum of JDK 1.3.
+
+
+IMPROVEMENTS IN 2.6
+===================
+
+ * [LANG-633] - BooleanUtils: use same optimization in toBooleanObject(String) as in toBoolean(String)
+ * [LANG-599] - ClassUtils: allow Dots as Inner Class Separators in getClass()
+ * [LANG-594] - DateUtils: equal and compare functions up to most significant field
+ * [LANG-632] - DateUtils: provide a Date to Calendar convenience method
+ * [LANG-576] - ObjectUtils: add clone methods to ObjectUtils
+ * [LANG-667] - ObjectUtils: add a Null-safe compare() method
+ * [LANG-670] - ObjectUtils: add notEqual() method
+ * [LANG-302] - StrBuilder: implement clone() method
+ * [LANG-640] - StringUtils: add a normalizeSpace() method
+ * [LANG-614] - StringUtils: add endsWithAny() method
+ * [LANG-655] - StringUtils: add defaultIfBlank() method
+ * [LANG-596] - StrSubstitutor: add a replace(String, Properties) variant
+ * [LANG-482] - StrSubstitutor: support substitution in variable names
+ * [LANG-669] - Use StrBuilder instead of StringBuffer to improve performance where sync. is not an issue
+
+BUG FIXES IN 2.6
+================
+
+ * [LANG-629] - CharSet: make the underlying set synchronized
+ * [LANG-635] - CompareToBuilder: fix passing along compareTransients to the reflectionCompare method
+ * [LANG-636] - ExtendedMessageFormat doesn't override equals(Object)
+ * [LANG-645] - FastDateFormat: fix to properly include the locale when formatting a Date
+ * [LANG-638] - NumberUtils: createNumber() throws a StringIndexOutOfBoundsException when argument containing "e" and "E" is passed in
+ * [LANG-607] - StringUtils methods do not handle Unicode 2.0+ supplementary characters correctly
+ * [LANG-624] - SystemUtils: getJavaVersionAsFloat throws StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+ * [BEANUTILS-381] - MemberUtils: getMatchingAccessibleMethod does not correctly handle inheritance and method overloading
+
+OTHER CHANGES IN 2.6
+====================
+
+ * [LANG-600] - Javadoc is incorrect for lastIndexOf() method
+ * [LANG-628] - Javadoc for HashCodeBuilder.append(boolean) does not match implementation
+ * [LANG-643] - Javadoc StringUtils.left() claims to throw an exception on negative length, but doesn't
+ * [LANG-370] - Javadoc - document thread safety
+ * [LANG-623] - Test for StringUtils replaceChars() icelandic characters
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.0.1.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.0.1.txt
new file mode 100644
index 000000000..0aa1ae561
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.0.1.txt
@@ -0,0 +1,57 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 3.0.1
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.0.1 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 5.0, making use of features that arrived with Java 5.0 such as generics,
+variable arguments, autoboxing, concurrency and formatted output.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+CHANGES IN 3.0.1
+================
+
+ [LANG-686] Improve exception message when StringUtils.replaceEachRepeatedly detects recursion
+ [LANG-717] Specify source encoding for Ant build
+ [LANG-721] Complement ArrayUtils.addAll() variants with by-index and by-value removal methods
+ [LANG-726] Add Range<T> Range<T>.intersectionWith(Range<T>)
+ [LANG-723] Add mode and median Comparable... methods to ObjectUtils
+ [LANG-722] Add BooleanUtils.and + or varargs methods
+ [LANG-730] EnumSet -> bit vector
+ [LANG-735] Deprecate CharUtils.toCharacterObject(char) in favor of java.lang.Character.valueOf(char)
+ [LANG-737] Missing method getRawMessage for ContextedException and ContextedRuntimeException
+
+BUG FIXES IN 3.0.1
+==================
+
+ [LANG-626] SerializationUtils.clone: Fallback to context classloader if class not found in current classloader
+ [LANG-727] ToStringBuilderTest.testReflectionHierarchyArrayList fails with IBM JDK 6
+ [LANG-720] StringEscapeUtils.escapeXml(input) wrong when input contains characters in Supplementary Planes
+ [LANG-708] StringEscapeUtils.escapeEcmaScript from lang3 cuts off long unicode string
+ [LANG-734] The CHAR_ARRAY cache in CharUtils duplicates the cache in java.lang.Character
+ [LANG-738] Use internal Java's Number caches instead creating new objects
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.0.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.0.txt
new file mode 100644
index 000000000..b6b0e13b0
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.0.txt
@@ -0,0 +1,170 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 3.0
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.0 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 now targets Java 5.0, making use of features that arrived with Java 5.0 such as generics,
+variable arguments, autoboxing, concurrency and formatted output.
+
+For the latest advice on upgrading, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+ADDITIONS IN 3.0
+================
+
+ [LANG-276] MutableBigDecimal and MutableBigInteger.
+ [LANG-285] Wish : method unaccent.
+ [LANG-358] ObjectUtils.coalesce.
+ [LANG-386] LeftOf/RightOfNumber in Range convenience methods necessary.
+ [LANG-435] Add ClassUtils.isAssignable() variants with autoboxing.
+ [LANG-444] StringUtils.emptyToNull.
+ [LANG-482] Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+ [LANG-482] StrSubstitutor now supports substitution in variable names.
+ [LANG-496] A generic implementation of the Lazy initialization pattern.
+ [LANG-497] Addition of ContextedException and ContextedRuntimeException.
+ [LANG-498] Add StringEscapeUtils.escapeText() methods.
+ [LANG-499] Add support for the handling of ExecutionExceptions.
+ [LANG-501] Add support for background initialization.
+ [LANG-529] Add a concurrent package.
+ [LANG-533] Validate: support for validating blank strings.
+ [LANG-537] Add ArrayUtils.toArray to create generic arrays.
+ [LANG-545] Add ability to create a Future for a constant.
+ [LANG-546] Add methods to Validate to check whether the index is valid for the array/list/string.
+ [LANG-553] Add TypeUtils class to provide utility code for working with generic types.
+ [LANG-559] Added isAssignableFrom and isInstanceOf validation methods.
+ [LANG-559] Added validState validation method.
+ [LANG-560] New TimedSemaphore class.
+ [LANG-582] Provide an implementation of the ThreadFactory interface.
+ [LANG-588] Create a basic Pair<L, R> class.
+ [LANG-594] DateUtils equal & compare functions up to most significant field.
+ [LANG-601] Add Builder Interface / Update Builders to Implement It.
+ [LANG-609] Support lazy initialization using atomic variables
+ [LANG-610] Extend exception handling in ConcurrentUtils to runtime exceptions.
+ [LANG-614] StringUtils.endsWithAny method
+ [LANG-640] Add normalizeSpace to StringUtils
+ [LANG-644] Provide documentation about the new concurrent package
+ [LANG-649] BooleanUtils.toBooleanObject to support single character input
+ [LANG-651] Add AnnotationUtils
+ [LANG-653] Provide a very basic ConcurrentInitializer implementation
+ [LANG-655] Add StringUtils.defaultIfBlank()
+ [LANG-667] Add a Null-safe compare() method to ObjectUtils
+ [LANG-676] Documented potential NPE if auto-boxing occurs for some BooleanUtils methods
+ [LANG-678] Add support for ConcurrentMap.putIfAbsent()
+ [LANG-692] Add hashCodeMulti varargs method
+ [LANG-697] Add FormattableUtils class
+ [LANG-684] Levenshtein Distance Within a Given Threshold
+
+REMOVALS IN 3.0
+===============
+
+ [LANG-438] Remove @deprecateds.
+ [LANG-492] Remove code handled now by the JDK.
+ [LANG-493] Remove code that does not hold enough value to remain.
+ [LANG-590] Remove JDK 1.2/1.3 bug handling in StringUtils.indexOf(String, String, int).
+ [LANG-673] WordUtils.abbreviate() removed
+ [LANG-691] Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS IN 3.0
+===================
+
+ [LANG-290] EnumUtils for JDK 5.0.
+ [LANG-336] Finally start using generics.
+ [LANG-355] StrBuilder should implement CharSequence and Appendable.
+ [LANG-396] Investigate for vararg usages.
+ [LANG-424] Improve Javadoc for StringUtils class.
+ [LANG-458] Refactor Validate.java to eliminate code redundancy.
+ [LANG-479] Document where in SVN trunk is.
+ [LANG-504] bring ArrayUtils.isEmpty to the generics world.
+ [LANG-505] Rewrite StringEscapeUtils.
+ [LANG-507] StringEscapeUtils.unescapeJava should support \u+ notation.
+ [LANG-510] Convert StringUtils API to take CharSequence.
+ [LANG-513] Better EnumUtils.
+ [LANG-528] Mutable classes should implement an appropriately typed Mutable interface.
+ [LANG-539] Compile commons.lang for CDC 1.1/Foundation 1.1.
+ [LANG-540] Make NumericEntityEscaper immutable.
+ [LANG-541] Replace StringBuffer with StringBuilder.
+ [LANG-548] Use Iterable on API instead of Collection.
+ [LANG-551] Replace Range classes with generic version.
+ [LANG-562] Change Maven groupId.
+ [LANG-563] Change Java package name.
+ [LANG-570] Do the test cases really still require main() and suite() methods?.
+ [LANG-579] Add new Validate methods.
+ [LANG-599] ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+ [LANG-605] DefaultExceptionContext overwrites values in recursive situations.
+ [LANG-668] Change ObjectUtils min() & max() functions to use varargs rather than just two parameters
+ [LANG-681] Push down WordUtils to "text" sub-package.
+ [LANG-711] Add includeantruntime=false to javac targets to quell warnings in ant 1.8.1 and better (and modest performance gain).
+ [LANG-713] Increase test coverage of FieldUtils read methods and tweak javadoc.
+ [LANG-718] build.xml Java 1.5+ updates.
+
+BUG FIXES IN 3.0
+================
+
+ [LANG-11] Depend on JDK 1.5+.
+ [LANG-302] StrBuilder does not implement clone().
+ [LANG-339] StringEscapeUtils.escapeHtml() escapes multibyte characters like Chinese, Japanese, etc.
+ [LANG-369] ExceptionUtils not thread-safe.
+ [LANG-418] Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+ [LANG-428] StringUtils.isAlpha, isAlphanumeric and isNumeric now return false for ""
+ [LANG-439] StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+ [LANG-448] Lower Ascii Characters don't get encoded by Entities.java.
+ [LANG-468] JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+ [LANG-474] Fixes for thread safety.
+ [LANG-478] StopWatch does not resist to system time changes.
+ [LANG-480] StringEscapeUtils.escapeHtml incorrectly converts unicode characters above U+00FFFF into 2 characters.
+ [LANG-481] Possible race-conditions in hashCode of the range classes.
+ [LANG-564] Improve StrLookup API documentation.
+ [LANG-568] @SuppressWarnings("unchecked") is used too generally.
+ [LANG-571] ArrayUtils.add(T[] array, T element) can create unexpected ClassCastException.
+ [LANG-585] exception.DefaultExceptionContext.getFormattedExceptionMessage catches Throwable.
+ [LANG-596] StrSubstitutor should also handle the default properties of a java.util.Properties class
+ [LANG-600] Javadoc is incorrect for public static int lastIndexOf(String str, String searchStr).
+ [LANG-602] ContextedRuntimeException no longer an 'unchecked' exception.
+ [LANG-606] EqualsBuilder causes StackOverflowException.
+ [LANG-608] Some StringUtils methods should take an int character instead of char to use String API features.
+ [LANG-617] StringEscapeUtils.escapeXML() can't process UTF-16 supplementary characters
+ [LANG-624] SystemUtils.getJavaVersionAsFloat throws StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+ [LANG-629] Charset may not be threadsafe, because the HashSet is not synch.
+ [LANG-638] NumberUtils createNumber throws a StringIndexOutOfBoundsException when argument containing "e" and "E" is passed in
+ [LANG-643] Javadoc StringUtils.left() claims to throw on negative len, but doesn't
+ [LANG-645] FastDateFormat.format() outputs incorrect week of year because locale isn't respected
+ [LANG-646] StringEscapeUtils.unescapeJava doesn't handle octal escapes and Unicode with extra u
+ [LANG-656] Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+ [LANG-658] Some entities like &Ouml; are not matched properly against its ISO8859-1 representation
+ [LANG-659] EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212 ISOtech
+ [LANG-66] StringEscaper.escapeXml() escapes characters > 0x7f.
+ [LANG-662] org.apache.commons.lang3.math.Fraction does not reduce (Integer.MIN_VALUE, 2^k)
+ [LANG-663] org.apache.commons.lang3.math.Fraction does not always succeed in multiplyBy and divideBy
+ [LANG-664] NumberUtils.isNumber(String) is not right when the String is "1.1L"
+ [LANG-672] Doc bug in DateUtils#ceiling
+ [LANG-677] DateUtils.isSameLocalTime compares using 12-hour clock and not 24-hour
+ [LANG-685] EqualsBuilder synchronizes on HashCodeBuilder.
+ [LANG-703] StringUtils.join throws NPE when toString returns null for one of objects in collection
+ [LANG-710] StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+ [LANG-714] StringUtils doc/comment spelling fixes.
+ [LANG-715] CharSetUtils.squeeze() speedup.
+ [LANG-716] swapCase and *capitalize speedups.
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.1.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.1.txt
new file mode 100644
index 000000000..c20d3cc96
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.1.txt
@@ -0,0 +1,55 @@
+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.
+
+=============================================================================
+
+ Commons Lang Package
+ Version 3.1
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.1 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 5.0, making use of features that arrived with Java 5.0 such as generics,
+variable arguments, autoboxing, concurrency and formatted output.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+CHANGES IN 3.1
+================
+
+ [LANG-760] Add API StringUtils.toString(byte[] input, String charsetName)
+ [LANG-756] Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and isPrimitiveOrWrapper(Class<?>)
+ [LANG-758] Add an example with whitespace in StringUtils.defaultIfEmpty
+ [LANG-752] Fix createLong() so it behaves like createInteger()
+ [LANG-751] Include the actual type in the Validate.isInstance and isAssignableFrom exception messages
+ [LANG-748] Deprecating chomp(String, String)
+ [LANG-736] CharUtils static final array CHAR_STRING is not needed to compute CHAR_STRING_ARRAY
+ [LANG-695] SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES IN 3.1
+==================
+
+ [LANG-749] Incorrect Bundle-SymbolicName in Manifest
+ [LANG-746] NumberUtils does not handle upper-case hex: 0X and -0X
+ [LANG-744] StringUtils throws java.security.AccessControlException on Google App Engine
+ [LANG-741] Ant build has wrong component.name
+ [LANG-698] Document that the Mutable numbers don't work as expected with String.format
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.10.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.10.txt
new file mode 100644
index 000000000..c77df7fa2
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.10.txt
@@ -0,0 +1,121 @@
+
+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.
+
+
+ Apache Commons Lang
+ Version 3.10
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.10 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.9 and onwards now targets Java 8, making use of features that arrived with Java 8.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+New features and bug fixes. Requires Java 8, supports Java 9, 10, 11.
+
+Changes in this version include:
+
+New features:
+o LANG-1457: Add ExceptionUtils.throwableOfType(Throwable, Class) and friends.
+o LANG-1458: Add EMPTY_ARRAY constants to classes in org.apache.commons.lang3.tuple.
+o LANG-1461: Add null-safe StringUtils APIs to wrap String#getBytes([Charset|String]).
+o LANG-1467: Add zero arg constructor for org.apache.commons.lang3.NotImplementedException.
+o LANG-1470: Add ArrayUtils.addFirst() methods.
+o LANG-1479: Add Range.fit(T) to fit a value into a range.
+o LANG-1477: Added Functions.as*, and tests thereof, as suggested by Peter Verhas
+o LANG-1485: Add getters for lhs and rhs objects in DiffResult #451. Thanks to nicolasbd.
+o LANG-1486: Generify builder classes Diffable, DiffBuilder, and DiffResult #452. Thanks to Gary Gregory.
+o LANG-1487: Add ClassLoaderUtils with toString() implementations #453. Thanks to Gary Gregory.
+o LANG-1489: Add null-safe APIs as StringUtils.toRootLowerCase(String) and StringUtils.toRootUpperCase(String) #456. Thanks to Gary Gregory.
+o LANG-1494: Add org.apache.commons.lang3.time.Calendars. Thanks to Gary Gregory.
+o LANG-1495: Add EnumUtils getEnum() methods with default values #475. Thanks to Cheong Voon Leong.
+o LANG-1177: Added indexesOf methods and simplified removeAllOccurences #471. Thanks to Liel Fridman.
+o LANG-1498: Add support of lambda value evaluation for defaulting methods #416. Thanks to Lysergid, Gary Gregory.
+o LANG-1503: Add factory methods to Pair classes with Map.Entry input. #454. Thanks to XenoAmess, Gary Gregory.
+o LANG-1505: Add StopWatch convenience APIs to format times and create a simple instance. Thanks to Gary Gregory.
+o LANG-1506: Allow a StopWatch to carry an optional message. Thanks to Gary Gregory.
+o LANG-1507: Add ComparableUtils #398. Thanks to Sam Kruglov, Mark Dacek, Marc Magon, Pascal Schumacher, Rob Tompkins, Bruno P. Kinoshita, Amey Jadiye, Gary Gregory.
+o LANG-1508: Add org.apache.commons.lang3.SystemUtils.getUserName(). Thanks to Gary Gregory.
+o LANG-1509: Add ObjectToStringComparator. #483. Thanks to Gary Gregory.
+o LANG-1510: Add org.apache.commons.lang3.arch.Processor.Arch.getLabel(). Thanks to Gary Gregory.
+o LANG-1512: Add IS_JAVA_14 and IS_JAVA_15 to org.apache.commons.lang3.SystemUtils. Thanks to Gary Gregory.
+o LANG-1513: ObjectUtils: Get first non-null supplier value. Thanks to Bernhard Bonigl, Gary Gregory.
+o Added the Streams class, and Functions.stream() as an accessor thereof.
+
+Fixed Bugs:
+o LANG-1514: Make test more stable by wrapping assertions in hashset. Thanks to contextshuffling.
+o LANG-1450: Generate Javadoc jar on build.
+o LANG-1460: Trivial: year of release for 3.9 says 2018, should be 2019 Thanks to Larry West.
+o LANG-1476: Use synchronize on a set created with Collections.synchronizedSet before iterating Thanks to emopers.
+o LANG-1475: StringUtils.unwrap incorrect throw StringIndexOutOfBoundsException. Thanks to stzx.
+o LANG-1406: StringIndexOutOfBoundsException in StringUtils.replaceIgnoreCase #423. Thanks to geratorres.
+o LANG-1453: StringUtils.removeIgnoreCase("?a", "a") throws IndexOutOfBoundsException #423. Thanks to geratorres.
+o LANG-1426: Corrected usage examples in Javadocs #458. Thanks to Brower, Mikko Maunu, Suraj Gautam.
+o LANG-1463: StringUtils abbreviate returns String of length greater than maxWidth #477. Thanks to bbeckercscc, Gary Gregory.
+o LANG-1500: Test may fail due to a different order of fields returned by reflection api #480. Thanks to contextshuffling.
+o LANG-1501: Sort fields in ReflectionToStringBuilder for deterministic order #481. Thanks to contextshuffling.
+o LANG-1433: MethodUtils will throw a NPE if invokeMethod() is called for a var-args method #407. Thanks to Christian Franzen.
+o LANG-1518: MethodUtils.getAnnotation() with searchSupers = true does not work if super is generic #494. Thanks to Michele Preti, Bruno P. Kinoshita, Gary Gregory.
+
+Changes:
+o LANG-1437: Remove redundant if statements in join methods #411. Thanks to Andrei Troie.
+o commons.japicmp.version 0.13.1 -> 0.14.1.
+o junit-jupiter 5.5.0 -> 5.5.1.
+o junit-jupiter 5.5.1 -> 5.5.2.
+o Improve Javadoc based on the discussion of the GitHub PR #459. Thanks to Jonathan Leitschuh, Bruno P. Kinoshita, Rob Tompkins, Gary Gregory.
+o maven-checkstyle-plugin 3.0.0 -> 3.1.0.
+o LANG-696: Update documentation related to the issue LANG-696 #449. Thanks to Peter Verhas.
+o AnnotationUtils little cleanup #467. Thanks to Peter Verhas.
+o Update test dependency: org.easymock:easymock 4.0.2 -> 4.1. Thanks to Gary Gregory.
+o Update test dependency: org.hamcrest:hamcrest 2.1 -> 2.2. Thanks to Gary Gregory.
+o Update test dependency: org.junit-pioneer:junit-pioneer 0.3.0 -> 0.4.2. Thanks to Gary Gregory.
+o Update build dependency: com.puppycrawl.tools:checkstyle 8.18 -> 8.27. Thanks to Gary Gregory.
+o Update POM parent: org.apache.commons:commons-parent 48 -> 50. Thanks to Gary Gregory.
+o BooleanUtils Javadoc #469. Thanks to Peter Verhas.
+o Functions Javadoc #466. Thanks to Peter Verhas.
+o org.easymock:easymock 4.1 -> 4.2. Thanks to Gary Gregory.
+o org.junit-pioneer:junit-pioneer 0.4.2 -> 0.5.4. Thanks to Gary Gregory.
+o org.junit.jupiter:junit-jupiter 5.5.2 -> 5.6.0. Thanks to Gary Gregory.
+o Use Javadoc {@code} instead of pre tags. #490. Thanks to Peter Verhas.
+o ExceptionUtilsTest to 100% #486. Thanks to Peter Verhas.
+o Reuse own code in Functions.java #493. Thanks to Peter Verhas.
+o LANG-1523: Avoid unnecessary allocation in StringUtils.wrapIfMissing. #496. Thanks to Edgar Asatryan, Bruno P. Kinoshita, Gary Gregory.
+o LANG-1525: Internally use Validate.notNull(foo, ...) instead of Validate.isTrue(foo != null, ...). Thanks to Edgar Asatryan, Bruno P. Kinoshita, Gary Gregory.
+o LANG-1526: Add 1 and 0 in toBooleanObject(final String str) #502. Thanks to Dominik Schramm.
+o LANG-1527: Remove a redundant argument check in NumberUtils #504. Thanks to Pengyu Nie.
+o LANG-1529: Deprecate org.apache.commons.lang3.ArrayUtils.removeAllOccurences(*) for org.apache.commons.lang3.ArrayUtils.removeAllOccurrences(*). Thanks to Gary Gregory, BillCindy, Bruno P. Kinoshita.
+
+
+Historical list of changes: https://commons.apache.org/proper/commons-lang/changes-report.html
+
+For complete information on Apache Commons Lang, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Lang website:
+
+https://commons.apache.org/proper/commons-lang/
+
+Download page: https://commons.apache.org/proper/commons-lang/download_lang.cgi
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.2.1.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.2.1.txt
new file mode 100644
index 000000000..bb554a629
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.2.1.txt
@@ -0,0 +1,417 @@
+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.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.2.1
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.2.1 version of
+Apache Commons Lang. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.2.1
+at least requires Java 6.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12-hour clock and not
+ 24-hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.2.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.2.txt
new file mode 100644
index 000000000..f686b0852
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.2.txt
@@ -0,0 +1,405 @@
+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.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.2
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.2 version of
+Apache Commons Lang. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.2
+at least requires Java 6.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12-hour clock and not
+ 24-hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.3.1.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.3.1.txt
new file mode 100644
index 000000000..0a42081ff
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.3.1.txt
@@ -0,0 +1,496 @@
+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.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.3.1
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.3.1 version of
+Apache Commons Lang. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.3.1
+at least requires Java 6.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+FIXED BUGS
+============
+
+o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong
+ days
+o LANG-983: DurationFormatUtils does not describe format string fully
+o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote char
+o LANG-984: DurationFormatUtils does not handle large durations correctly
+o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field
+ size should be 4 digits
+o LANG-978: Failing tests with Java 8 b128
+
+ Release Notes for version 3.3
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian GĂśtz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio FernĂĄndez.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12-hour clock and not
+ 24-hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.3.2.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.3.2.txt
new file mode 100644
index 000000000..fb498b2ef
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.3.2.txt
@@ -0,0 +1,509 @@
+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.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.3.2
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.3.2 version of
+Apache Commons Lang. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.3.2
+at least requires Java 6.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+
+NEW FEATURES
+==============
+
+o LANG-989: Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8
+
+FIXED BUGS
+============
+
+o LANG-992: NumberUtils#isNumber() returns false for "0.0", "0.4790", et al
+
+ Release Notes for version 3.3.1
+
+FIXED BUGS
+============
+
+o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong
+ days
+o LANG-983: DurationFormatUtils does not describe format string fully
+o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote char
+o LANG-984: DurationFormatUtils does not handle large durations correctly
+o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field
+ size should be 4 digits
+o LANG-978: Failing tests with Java 8 b128
+
+ Release Notes for version 3.3
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian GĂśtz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio FernĂĄndez.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12-hour clock and not
+ 24-hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.3.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.3.txt
new file mode 100644
index 000000000..77a28fb19
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.3.txt
@@ -0,0 +1,482 @@
+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.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.3
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.3 version of
+Apache Commons Lang. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.3
+at least requires Java 6.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian GĂśtz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio FernĂĄndez.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12-hour clock and not
+ 24-hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.4.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.4.txt
new file mode 100644
index 000000000..afbcc4a1d
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.4.txt
@@ -0,0 +1,642 @@
+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.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.4
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.4 version of
+Apache Commons Lang. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.4
+at least requires Java 6.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+
+COMPATIBILITY
+=============
+
+Commons Lang 3.4 is fully binary compatible to the last release and can
+therefore be used as a drop in replacement for 3.3.2. Note that the value of
+org.apache.commons.lang3.time.DurationFormatUtils.ISO_EXTENDED_FORMAT_PATTERN
+has changed, which may affect clients using the constant. Furthermore the
+constant is used internally in
+o DurationFormatUtils.formatDurationISO(long)
+o DurationFormatUtils.formatPeriodISO(long, long)
+
+For more information see https://issues.apache.org/jira/browse/LANG-1000.
+
+NEW FEATURES
+==============
+
+o LANG-821: Support OS X versions in SystemUtils. Thanks to Timo Kockert.
+o LANG-1103: Add SystemUtils.IS_JAVA_1_9
+o LANG-1093: Add ClassUtils.getAbbreviatedName(). Thanks to Fabian Lange.
+o LANG-1082: Add option to disable the "objectsTriviallyEqual" test in
+ DiffBuilder. Thanks to Jonathan Baker.
+o LANG-1015: Add JsonToStringStyle implementation to ToStringStyle. Thanks to
+ Thiago Andrade.
+o LANG-1080: Add NoClassNameToStringStyle implementation of ToStringStyle.
+ Thanks to Innokenty Shuvalov.
+o LANG-883: Add StringUtils.containsAny(CharSequence, CharSequence...) method.
+ Thanks to Daniel Stewart.
+o LANG-1052: Multiline recursive to string style. Thanks to Jan Matèrne.
+o LANG-536: Add isSorted() to ArrayUtils. Thanks to James Sawle.
+o LANG-1033: Add StringUtils.countMatches(CharSequence, char)
+o LANG-1021: Provide methods to retrieve all fields/methods annotated with a
+ specific type. Thanks to Alexander MĂźller.
+o LANG-1016: NumberUtils#isParsable method(s). Thanks to
+ Juan Pablo Santos RodrĂ­guez.
+o LANG-999: Add fuzzy String matching logic to StringUtils. Thanks to
+ Ben Ripkens.
+o LANG-994: Add zero copy read method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-993: Add zero copy write method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-1044: Add method MethodUtils.invokeExactMethod(Object, String)
+o LANG-1045: Add method MethodUtils.invokeMethod(Object, String)
+
+FIXED BUGS
+============
+
+o LANG-794: SystemUtils.IS_OS_WINDOWS_2008, VISTA are incorrect. Thanks to
+ Timo Kockert.
+o LANG-1104: Parse test fails for TimeZone America/Sao_Paulo
+o LANG-948: Exception while using ExtendedMessageFormat and escaping braces.
+ Thanks to Andrey Khobnya.
+o LANG-1092: Wrong formatting of time zones with daylight saving time in
+ FastDatePrinter
+o LANG-1090: FastDateParser does not set error indication in ParsePosition
+o LANG-1089: FastDateParser does not handle excess hours as per
+ SimpleDateFormat
+o LANG-1061: FastDateParser error - timezones not handled correctly. Thanks to
+ dmeneses.
+o LANG-1087: NumberUtils#createNumber() returns positive BigDecimal when
+ negative Float is expected. Thanks to Renat Zhilkibaev.
+o LANG-1081: DiffBuilder.append(String, Object left, Object right) does not do
+ a left.equals(right) check. Thanks to Jonathan Baker.
+o LANG-1055: StrSubstitutor.replaceSystemProperties does not work consistently.
+ Thanks to Jonathan Baker.
+o LANG-1083: Add (T) casts to get unit tests to pass in old JDK. Thanks to
+ Jonathan Baker.
+o LANG-1073: Read wrong component type of array in add in ArrayUtils.
+ Thanks to haiyang li.
+o LANG-1077: StringUtils.ordinalIndexOf("aaaaaa", "aa", 2) != 3 in StringUtils.
+ Thanks to haiyang li.
+o LANG-1072: Duplicated "0x" check in createBigInteger in NumberUtils. Thanks
+ to haiyang li.
+o LANG-1064: StringUtils.abbreviate description doesn't agree with the
+ examples. Thanks to B.J. Herbison.
+o LANG-1041: Fix MethodUtilsTest so it does not depend on JDK method ordering.
+ Thanks to Alexandre Bartel.
+o LANG-1000: ParseException when trying to parse UTC dates with Z as zone
+ designator using DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT
+o LANG-1035: Javadoc for EqualsBuilder.reflectionEquals() is unclear
+o LANG-1001: ISO 8601 misspelled throughout the Javadocs. Thanks to
+ Michael Osipov.
+o LANG-1088: FastDateParser should be case-insensitive
+o LANG-995: Fix bug with stripping spaces on last line in WordUtils.wrap().
+ Thanks to Andrey Khobnya.
+
+CHANGES
+=========
+
+o LANG-1102: Make logic for comparing OS versions in SystemUtils smarter
+o LANG-1091: Shutdown thread pools in test cases. Thanks to Fabian Lange.
+o LANG-1101: FastDateParser and FastDatePrinter support 'X' format
+o LANG-1100: Avoid memory allocation when using date formatting to StringBuffer.
+ Thanks to mbracher.
+o LANG-935: Possible performance improvement on string escape functions.
+ Thanks to Fabian Lange, Thomas Neidhart.
+o LANG-1098: Avoid String allocation in StrBuilder.append(CharSequence). Thanks
+ to Mikhail Mazurskiy, Fabian Lange.
+o LANG-1098: Update maven-checkstyle-plugin to 2.14. Thanks to Micha? Kordas.
+o LANG-1097: Update org.easymock:easymock to 3.3.1. Thanks to Micha? Kordas.
+o LANG-1096: Update maven-pmd-plugin to 3.4. Thanks to Micha? Kordas.
+o LANG-1095: Update maven-antrun-plugin to 1.8. Thanks to Micha? Kordas.
+o LANG-877: Performance improvements for StringEscapeUtils. Thanks to
+ Fabian Lange.
+o LANG-1071: Fix wrong examples in Javadoc of
+ StringUtils.replaceEachRepeatedly(...),
+ StringUtils.replaceEach(...) Thanks to Arno Noordover.
+o LANG-827: CompareToBuilder's doc doesn't specify precedence of fields it
+ uses in performing comparisons
+o LANG-1020: Improve performance of normalize space. Thanks to Libor Ondrusek.
+o LANG-1027: org.apache.commons.lang3.SystemUtils#isJavaVersionAtLeast should
+ return true by default
+o LANG-1026: Bring static method references in StringUtils to consistent style.
+ Thanks to Alex Yursha.
+o LANG-1017: Use non-ASCII digits in Javadoc examples for
+ StringUtils.isNumeric. Thanks to Christoph Schneegans.
+o LANG-1008: Change min/max methods in NumberUtils/IEEE754rUtils from array
+ input parameters to varargs. Thanks to Thiago Andrade.
+o LANG-1006: Add wrap (with String or char) to StringUtils. Thanks to
+ Thiago Andrade.
+o LANG-1005: Extend DurationFormatUtils#formatDurationISO default pattern to
+ match #formatDurationHMS. Thanks to Michael Osipov.
+o LANG-1007: Fixing NumberUtils JAVADoc comments for max methods. Thanks to
+ Thiago Andrade.
+o LANG-731: Better Javadoc for BitField class
+o LANG-1004: DurationFormatUtils#formatDurationHMS implementation does not
+ correspond to Javadoc and vice versa. Thanks to Michael Osipov.
+o LANG-1003: DurationFormatUtils are not able to handle negative
+ durations/periods
+o LANG-998: Javadoc is not clear on preferred pattern to instantiate
+ FastDateParser / FastDatePrinter
+
+ Release Notes for version 3.3.2
+
+NEW FEATURES
+==============
+
+o LANG-989: Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8
+
+FIXED BUGS
+============
+
+o LANG-992: NumberUtils#isNumber() returns false for "0.0", "0.4790", et al
+
+ Release Notes for version 3.3.1
+
+FIXED BUGS
+============
+
+o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong
+ days
+o LANG-983: DurationFormatUtils does not describe format string fully
+o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote char
+o LANG-984: DurationFormatUtils does not handle large durations correctly
+o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field
+ size should be 4 digits
+o LANG-978: Failing tests with Java 8 b128
+
+ Release Notes for version 3.3
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian GĂśtz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio FernĂĄndez.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12-hour clock and not
+ 24-hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.5.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.5.txt
new file mode 100644
index 000000000..37add8890
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.5.txt
@@ -0,0 +1,940 @@
+
+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.
+
+=============================================================================
+
+ Release Notes for version 3.5
+
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o Added Java 9 detection to org.apache.commons.lang3.SystemUtils.
+o Support for shifting and swapping elements in
+ org.apache.commons.lang3.ArrayUtils.
+o New methods for generating random strings from different character classes
+ including alphabetic, alphanumeric and ASCII added to
+ org.apache.commons.lang3.RandomStringUtils.
+o Numerous extensions to org.apache.commons.lang3.StringUtils including
+ null safe compare variants, more remove and replace variants, rotation and
+ truncation.
+o Added org.apache.commons.lang3.ThreadUtils - a utility class to work with
+ instances of java.lang.Thread and java.lang.ThreadGroup.
+o Added annotations @EqualsExclude, @HashCodeExclude and @ToStringExclude to
+ mark fields which should be ignored by the reflective builders in the
+ org.apache.commons.lang3.builder package.
+o Support for various modify and retrieve value use cases added to the classes
+ in org.apache.commons.lang3.mutable.
+
+COMPATIBILITY
+=============
+
+Apache Commons Lang 3.5 is binary compatible with the 3.4 release. Users
+should not experience any problems when upgrading from 3.4 to 3.5.
+
+There has been an addition to the org.apache.commons.lang3.time.DatePrinter
+interface:
+
+o Added method 'public boolean parse(java.lang.String, java.text.ParsePosition,
+ java.util.Calendar)'
+o Added method 'public java.lang.Appendable format(long, java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Date,
+ java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Calendar,
+ java.lang.Appendable)'
+
+For this reason 3.5 is not strictly source compatible to 3.4. Since the
+DatePrinter interface is not meant to be implemented by clients, this
+change it not considered to cause any problems.
+
+JAVA 9 SUPPORT
+==============
+
+Java 9 introduces a new version-string scheme. Details of this new scheme are
+documented in JEP-223 (https://openjdk.org/jeps/223). In order to support
+JEP-223 two classes had to be changed:
+
+o org.apache.commons.lang3.JavaVersion
+ deprecated enum constant JAVA_1_9
+ introduced enum constant JAVA_9
+
+o org.apache.commons.lang3.SystemUtils
+ deprecated constant IS_JAVA_1_9
+ introduced constant IS_JAVA_9
+
+For more information see LANG-1197
+(https://issues.apache.org/jira/browse/LANG-1197). All other APIs are expected
+to work with Java 9.
+
+BUILDING ON JAVA 9
+==================
+
+Java 8 introduced the Unicode Consortium's Common Locale Data Repository as
+alternative source for locale data. Java 9 will use the CLDR provider as
+default provider for locale data (see https://openjdk.org/jeps/252). This
+causes a number of locale-sensitive test in Commons Lang to fail. In order
+to build Commons Lang 3.5 on Java 9, the locale provider has to be set to
+'JRE':
+
+ mvn -Djava.locale.providers=JRE clean install
+
+We are currently investigating ways to support building on Java 9 without
+further configuration. For more information see:
+https://issues.apache.org/jira/browse/LANG-1265
+
+
+NEW FEATURES
+==============
+
+o LANG-1275: Added a tryAcquire() method to TimedSemaphore.
+o LANG-1255: Add DateUtils.toCalendar(Date, TimeZone). Thanks to Kaiyuan Wang.
+o LANG-1023: Add WordUtils.wrap overload with customizable breakable character.
+ Thanks to Marko Bekhta.
+o LANG-787: Add method removeIgnoreCase(String, String) to StringUtils. Thanks
+ to Gokul Nanthakumar C.
+o LANG-1224: Extend RandomStringUtils with methods that generate strings
+ between a min and max length. Thanks to Caleb Cushing.
+o LANG-1257: Add APIs StringUtils.wrapIfMissing(String, char|String). Thanks to
+ Gary Gregory.
+o LANG-1253: Add RandomUtils#nextBoolean() method. Thanks to adilek.
+o LANG-1085: Add a circuit breaker implementation. Thanks to Oliver Heger and
+ Bruno P. Kinoshita.
+o LANG-1013: Add StringUtils.truncate(). Thanks to Thiago Andrade.
+o LANG-1195: Enhance MethodUtils to allow invocation of private methods. Thanks
+ to Derek C. Ashmore.
+o LANG-1189: Add getAndIncrement/getAndDecrement/getAndAdd/incrementAndGet/
+ decrementAndGet/addAndGet in Mutable* classes. Thanks to
+ Haiyang Li and Matthew Bartenschlag.
+o LANG-1225: Add RandomStringUtils#randomGraph and #randomPrint which match
+ corresponding regular expression class. Thanks to Caleb Cushing.
+o LANG-1223: Add StopWatch#getTime(TimeUnit). Thanks to Nick Manley.
+o LANG-781: Add methods to ObjectUtils class to check for null elements in the
+ array. Thanks to Krzysztof Wolny.
+o LANG-1228: Prefer Throwable.getCause() in ExceptionUtils.getCause().
+ Thanks to Brad Hess.
+o LANG-1233: DiffBuilder add method to allow appending from a DiffResult.
+ Thanks to Nick Manley.
+o LANG-1168: Add SystemUtils.IS_OS_WINDOWS_10 property.
+ Thanks to Pascal Schumacher.
+o LANG-1115: Add support for varargs in ConstructorUtils, MemberUtils, and
+ MethodUtils. Thanks to Jim Lloyd and Joe Ferner.
+o LANG-1134: Add methods to check numbers against NaN and infinite to
+ Validate. Thanks to Alan Smithee.
+o LANG-1220: Add tests for missed branches in DateUtils.
+ Thanks to Casey Scarborough.
+o LANG-1146: z/OS identification in SystemUtils.
+ Thanks to Gabor Liptak.
+o LANG-1192: FastDateFormat support of the week-year component (uppercase 'Y').
+ Thanks to Dominik Stadler.
+o LANG-1169: Add StringUtils methods to compare a string to multiple strings.
+ Thanks to Rafal Glowinski, Robert Parr and Arman Sharif.
+o LANG-1185: Add remove by regular expression methods in StringUtils.
+o LANG-1139: Add replace by regular expression methods in StringUtils.
+o LANG-1171: Add compare methods in StringUtils.
+o LANG-1174: Add sugar to RandomUtils. Thanks to Punkratz312.
+o LANG-1154: FastDateFormat APIs that use a StringBuilder. Thanks to
+ Gary Gregory.
+o LANG-1149: Ability to throw checked exceptions without declaring them. Thanks
+ to Gregory Zak.
+o LANG-1153: Implement ParsePosition api for FastDateParser.
+o LANG-1137: Add check for duplicate event listener in EventListenerSupport.
+ Thanks to Matthew Aguirre.
+o LANG-1135: Add method containsAllWords to WordUtils. Thanks to
+ Eduardo Martins.
+o LANG-1132: ReflectionToStringBuilder doesn't throw IllegalArgumentException
+ when the constructor's object param is null. Thanks to Jack Tan.
+o LANG-701: StringUtils join with var args. Thanks to James Sawle.
+o LANG-1105: Add ThreadUtils - A utility class which provides helper methods
+ related to java.lang.Thread Issue: LANG-1105. Thanks to
+ Hendrik Saly.
+o LANG-1031: Add annotations to exclude fields from ReflectionEqualsBuilder,
+ ReflectionToStringBuilder and ReflectionHashCodeBuilder. Thanks
+ to Felipe Adorno.
+o LANG-1127: Use JUnit rules to set and reset the default Locale and TimeZone.
+o LANG-1119: Add rotate(string, int) method to StringUtils. Thanks to
+ Loic Guibert.
+o LANG-1099: Add swap and shift operations for arrays to ArrayUtils. Thanks to
+ Adrian Ber.
+o LANG-1050: Change nullToEmpty methods to generics. Thanks to James Sawle.
+o LANG-1074: Add a method to ArrayUtils for removing all occurrences of a given
+ element Issue: LANG-1074. Thanks to Haiyang Li.
+
+FIXED BUGS
+============
+
+o LANG-1261: ArrayUtils.contains returns false for instances of subtypes.
+o LANG-1252: Rename NumberUtils.isNumber, isCreatable to better reflect
+ createNumber. Also, accommodated for "+" symbol as prefix in
+ isCreatable and isNumber. Thanks to Rob Tompkins.
+o LANG-1230: Remove unnecessary synchronization from registry lookup in
+ EqualsBuilder and HashCodeBuilder. Thanks to Philippe Marschall.
+o LANG-1214: Handle "void" in ClassUtils.getClass(). Thanks to Henry Tung.
+o LANG-1250: SerializationUtils#deserialize has unnecessary code and a comment
+ for that. Thanks to Glease Wang.
+o LANG-1190: TypeUtils.isAssignable throws NullPointerException when fromType
+ has type variables and toType generic superclass specifies type
+ variable. Thanks to Pascal Schumacher.
+o LANG-1226: StringUtils#normalizeSpace does not trim the string anymore.
+ Thanks to Pascal Schumacher.
+o LANG-1251: SerializationUtils.ClassLoaderAwareObjectInputStream should use
+ static initializer to initialize primitiveTypes map. Thanks to
+ Takuya Ueshin.
+o LANG-1248: FastDatePrinter Memory allocation regression. Thanks to
+ Benoit Wiart.
+o LANG-1018: Fix precision loss on NumberUtils.createNumber(String). Thanks to
+ Nick Manley.
+o LANG-1199: Fix implementation of StringUtils.getJaroWinklerDistance(). Thanks
+ to M. Steiger.
+o LANG-1244: Fix dead links in StringUtils.getLevenshteinDistance() javadoc.
+ Thanks to jjbankert.
+o LANG-1242: "\u2284":"?" mapping missing from
+ EntityArrays#HTML40_EXTENDED_ESCAPE. Thanks to Neal Stewart.
+o LANG-901: StringUtils#startsWithAny/endsWithAny is case-sensitive -
+ documented as case-insensitive. Thanks to Matthew Bartenschlag.
+o LANG-1232: DiffBuilder: Add null check on fieldName when appending Object or
+ Object[]. Thanks to Nick Manley.
+o LANG-1178: ArrayUtils.removeAll(Object array, int... indices) should do the
+ clone, not its callers. Thanks to Henri Yandell.
+o LANG-1120: StringUtils.stripAccents should remove accents from "Ł" and "ł".
+ Thanks to kaching88.
+o LANG-1205: NumberUtils.createNumber() behaves inconsistently with
+ NumberUtils.isNumber(). Thanks to pbrose.
+o LANG-1222: Fix for incorrect comment on StringUtils.containsIgnoreCase
+ method. Thanks to Adam J.
+o LANG-1221: Fix typo on appendIfMissing javadoc. Thanks to Pierre Templier.
+o LANG-1202: parseDateStrictly doesn't pass specified locale. Thanks to
+ Markus Jelsma.
+o LANG-1219: FastDateFormat doesn't respect summer daylight in some localized
+ strings. Thanks to Jarek.
+o LANG-1175: Remove Ant-based build.
+o LANG-1194: Limit max heap memory for consistent Travis CI build.
+o LANG-1186: Fix NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to NickManley.
+o LANG-1193: ordinalIndexOf("abc", "ab", 1) gives incorrect answer of -1
+ (correct answer should be 0); revert fix for LANG-1077. Thanks to
+ Qin Li.
+o LANG-1002: Several predefined ISO FastDateFormats in DateFormatUtils are
+ incorrect. Thanks to Michael Osipov.
+o LANG-1152: StringIndexOutOfBoundsException or field over-write for large year
+ fields in FastDateParser. Thanks to Pas Filip.
+o LANG-1141: StrLookup.systemPropertiesLookup() no longer reacts on changes on
+ system properties.
+o LANG-1147: EnumUtils *BitVector issue with more than 32 values Enum. Thanks
+ to Loic Guibert.
+o LANG-1059: Capitalize javadoc is incorrect. Thanks to Colin Casey.
+o LANG-1122: Inconsistent behavior of swap for malformed inputs. Thanks to
+ Adrian Ber.
+o LANG-1130: Fix critical issues reported by SonarQube.
+o LANG-1131: StrBuilder.equals(StrBuilder) doesn't check for null inputs.
+o LANG-1128: JsonToStringStyle doesn't handle chars and objects correctly.
+ Thanks to Jack Tan.
+o LANG-1126: DateFormatUtilsTest.testSMTP depends on the default Locale.
+o LANG-1123: Unit test FastDatePrinterTimeZonesTest needs a timezone set.
+ Thanks to Christian P. Momon.
+o LANG-916: DateFormatUtils.format does not correctly change Calendar
+ TimeZone in certain situations. Thanks to Christian P. Momon.
+o LANG-1116: DateUtilsTest.testLang530 fails for some timezones. Thanks to
+ Aaron Sheldon.
+o LANG-1114: TypeUtils.ParameterizedType#equals doesn't work with wildcard
+ types. Thanks to Andy Coates.
+o LANG-1118: StringUtils.repeat('z', -1) throws NegativeArraySizeException.
+ Thanks to Loic Guibert.
+o LANG-1111: Fix FindBugs warnings in DurationFormatUtils.
+o LANG-1162: StringUtils#equals fails with Index OOBE on non-Strings with
+ identical leading prefix..
+o LANG-1163: There are no tests for CharSequenceUtils.regionMatches.
+o LANG-1200: Fix Javadoc of StringUtils.ordinalIndexOf. Thanks to BarkZhang.
+o LANG-1191: Incorrect Javadoc
+ StringUtils.containsAny(CharSequence, CharSequence...). Thanks to
+ qed, Brent Worden and Gary Gregory.
+
+CHANGES
+=========
+o LANG-1197: Prepare Java 9 detection.
+o LANG-1262: CompareToBuilder.append(Object, Object, Comparator) method is too
+ big to be inlined. Thanks to Ruslan Cheremin.
+o LANG-1259: Javadoc for ArrayUtils.isNotEmpty() is slightly misleading. Thanks
+ to Dominik Stadler.
+o LANG-1247: FastDatePrinter generates extra Date objects. Thanks to
+ Benoit Wiart.
+o LANG-1229: HashCodeBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1243: Simplify ArrayUtils removeElements by using new decrementAndGet()
+ method.
+o LANG-1240: Optimize BitField constructor implementation. Thanks to zhanhb.
+o LANG-1206: Improve CharSetUtils.squeeze() performance. Thanks to
+ Mohammed Alfallaj.
+o LANG-1176: Improve ArrayUtils removeElements time complexity to O(n). Thanks
+ to Jeffery Yuan.
+o LANG-1234: getLevenshteinDistance with a threshold: optimize implementation
+ if the strings lengths differ more than the threshold. Thanks to
+ Jonatan JĂśnsson.
+o LANG-1151: Performance improvements for NumberUtils.isParsable. Thanks to
+ Juan Pablo Santos RodrĂ­guez.
+o LANG-1218: EqualsBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1210: StringUtils#startsWithAny has error in Javadoc. Thanks to
+ Matthias Niehoff.
+o LANG-1208: StrSubstitutor can preserve escapes. Thanks to Samuel Karp.
+o LANG-1182: Clarify Javadoc of StringUtils.containsAny(). Thanks to
+ Larry West and Pascal Schumacher.
+o LANG-1183: Making replacePattern/removePattern methods null safe in
+ StringUtils.
+o LANG-1057: Replace StringBuilder with String concatenation for better
+ optimization. Thanks to OtĂĄvio Santana.
+o LANG-1075: Deprecate SystemUtils.FILE_SEPARATOR and
+ SystemUtils.PATH_SEPARATOR.
+o LANG-979: TypeUtils.parameterizeWithOwner - wrong format descriptor for
+ "invalid number of type parameters". Thanks to Bruno P. Kinoshita.
+o LANG-1112: MultilineRecursiveToStringStyle largely unusable due to being
+ package-private.
+o LANG-1058: StringUtils.uncapitalize performance improvement. Thanks to
+ Leo Wang.
+o LANG-1069: CharSet.getInstance documentation does not clearly explain how
+ to include negation character in set. Thanks to Arno Noordover.
+o LANG-1107: Fix parsing edge cases in FastDateParser.
+o LANG-1273: Added new property IS_OS_MAC_OSX_EL_CAPITAN in SystemUtils. Thanks
+ to Jake Wang.
+
+=============================================================================
+
+ Release Notes for version 3.4
+
+
+COMPATIBILITY
+=============
+
+Commons Lang 3.4 is fully binary compatible to the last release and can
+therefore be used as a drop in replacement for 3.3.2. Note that the value of
+org.apache.commons.lang3.time.DurationFormatUtils.ISO_EXTENDED_FORMAT_PATTERN
+has changed, which may affect clients using the constant. Furthermore the
+constant is used internally in
+o DurationFormatUtils.formatDurationISO(long)
+o DurationFormatUtils.formatPeriodISO(long, long)
+
+For more information see https://issues.apache.org/jira/browse/LANG-1000.
+
+NEW FEATURES
+==============
+
+o LANG-821: Support OS X versions in SystemUtils. Thanks to Timo Kockert.
+o LANG-1103: Add SystemUtils.IS_JAVA_1_9
+o LANG-1093: Add ClassUtils.getAbbreviatedName(). Thanks to Fabian Lange.
+o LANG-1082: Add option to disable the "objectsTriviallyEqual" test in
+ DiffBuilder. Thanks to Jonathan Baker.
+o LANG-1015: Add JsonToStringStyle implementation to ToStringStyle. Thanks to
+ Thiago Andrade.
+o LANG-1080: Add NoClassNameToStringStyle implementation of ToStringStyle.
+ Thanks to Innokenty Shuvalov.
+o LANG-883: Add StringUtils.containsAny(CharSequence, CharSequence...) method.
+ Thanks to Daniel Stewart.
+o LANG-1052: Multiline recursive to string style. Thanks to Jan Matèrne.
+o LANG-536: Add isSorted() to ArrayUtils. Thanks to James Sawle.
+o LANG-1033: Add StringUtils.countMatches(CharSequence, char)
+o LANG-1021: Provide methods to retrieve all fields/methods annotated with a
+ specific type. Thanks to Alexander MĂźller.
+o LANG-1016: NumberUtils#isParsable method(s). Thanks to
+ Juan Pablo Santos RodrĂ­guez.
+o LANG-999: Add fuzzy String matching logic to StringUtils. Thanks to
+ Ben Ripkens.
+o LANG-994: Add zero copy read method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-993: Add zero copy write method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-1044: Add method MethodUtils.invokeExactMethod(Object, String)
+o LANG-1045: Add method MethodUtils.invokeMethod(Object, String)
+
+FIXED BUGS
+============
+
+o LANG-794: SystemUtils.IS_OS_WINDOWS_2008, VISTA are incorrect. Thanks to
+ Timo Kockert.
+o LANG-1104: Parse test fails for TimeZone America/Sao_Paulo
+o LANG-948: Exception while using ExtendedMessageFormat and escaping braces.
+ Thanks to Andrey Khobnya.
+o LANG-1092: Wrong formatting of time zones with daylight saving time in
+ FastDatePrinter
+o LANG-1090: FastDateParser does not set error indication in ParsePosition
+o LANG-1089: FastDateParser does not handle excess hours as per
+ SimpleDateFormat
+o LANG-1061: FastDateParser error - timezones not handled correctly. Thanks to
+ dmeneses.
+o LANG-1087: NumberUtils#createNumber() returns positive BigDecimal when
+ negative Float is expected. Thanks to Renat Zhilkibaev.
+o LANG-1081: DiffBuilder.append(String, Object left, Object right) does not do
+ a left.equals(right) check. Thanks to Jonathan Baker.
+o LANG-1055: StrSubstitutor.replaceSystemProperties does not work consistently.
+ Thanks to Jonathan Baker.
+o LANG-1083: Add (T) casts to get unit tests to pass in old JDK. Thanks to
+ Jonathan Baker.
+o LANG-1073: Read wrong component type of array in add in ArrayUtils.
+ Thanks to haiyang li.
+o LANG-1077: StringUtils.ordinalIndexOf("aaaaaa", "aa", 2) != 3 in StringUtils.
+ Thanks to haiyang li.
+o LANG-1072: Duplicated "0x" check in createBigInteger in NumberUtils. Thanks
+ to haiyang li.
+o LANG-1064: StringUtils.abbreviate description doesn't agree with the
+ examples. Thanks to B.J. Herbison.
+o LANG-1041: Fix MethodUtilsTest so it does not depend on JDK method ordering.
+ Thanks to Alexandre Bartel.
+o LANG-1000: ParseException when trying to parse UTC dates with Z as zone
+ designator using DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT
+o LANG-1035: Javadoc for EqualsBuilder.reflectionEquals() is unclear
+o LANG-1001: ISO 8601 misspelled throughout the Javadocs. Thanks to
+ Michael Osipov.
+o LANG-1088: FastDateParser should be case-insensitive
+o LANG-995: Fix bug with stripping spaces on last line in WordUtils.wrap().
+ Thanks to Andrey Khobnya.
+
+CHANGES
+=========
+
+o LANG-1102: Make logic for comparing OS versions in SystemUtils smarter
+o LANG-1091: Shutdown thread pools in test cases. Thanks to Fabian Lange.
+o LANG-1101: FastDateParser and FastDatePrinter support 'X' format
+o LANG-1100: Avoid memory allocation when using date formatting to StringBuffer.
+ Thanks to mbracher.
+o LANG-935: Possible performance improvement on string escape functions.
+ Thanks to Fabian Lange, Thomas Neidhart.
+o LANG-1098: Avoid String allocation in StrBuilder.append(CharSequence). Thanks
+ to Mikhail Mazurskiy, Fabian Lange.
+o LANG-1098: Update maven-checkstyle-plugin to 2.14. Thanks to Micha? Kordas.
+o LANG-1097: Update org.easymock:easymock to 3.3.1. Thanks to Micha? Kordas.
+o LANG-1096: Update maven-pmd-plugin to 3.4. Thanks to Micha? Kordas.
+o LANG-1095: Update maven-antrun-plugin to 1.8. Thanks to Micha? Kordas.
+o LANG-877: Performance improvements for StringEscapeUtils. Thanks to
+ Fabian Lange.
+o LANG-1071: Fix wrong examples in Javadoc of
+ StringUtils.replaceEachRepeatedly(...),
+ StringUtils.replaceEach(...) Thanks to Arno Noordover.
+o LANG-827: CompareToBuilder's doc doesn't specify precedence of fields it
+ uses in performing comparisons
+o LANG-1020: Improve performance of normalize space. Thanks to Libor Ondrusek.
+o LANG-1027: org.apache.commons.lang3.SystemUtils#isJavaVersionAtLeast should
+ return true by default
+o LANG-1026: Bring static method references in StringUtils to consistent style.
+ Thanks to Alex Yursha.
+o LANG-1017: Use non-ASCII digits in Javadoc examples for
+ StringUtils.isNumeric. Thanks to Christoph Schneegans.
+o LANG-1008: Change min/max methods in NumberUtils/IEEE754rUtils from array
+ input parameters to varargs. Thanks to Thiago Andrade.
+o LANG-1006: Add wrap (with String or char) to StringUtils. Thanks to
+ Thiago Andrade.
+o LANG-1005: Extend DurationFormatUtils#formatDurationISO default pattern to
+ match #formatDurationHMS. Thanks to Michael Osipov.
+o LANG-1007: Fixing NumberUtils JAVADoc comments for max methods. Thanks to
+ Thiago Andrade.
+o LANG-731: Better Javadoc for BitField class
+o LANG-1004: DurationFormatUtils#formatDurationHMS implementation does not
+ correspond to Javadoc and vice versa. Thanks to Michael Osipov.
+o LANG-1003: DurationFormatUtils are not able to handle negative
+ durations/periods
+o LANG-998: Javadoc is not clear on preferred pattern to instantiate
+ FastDateParser / FastDatePrinter
+
+=============================================================================
+
+ Release Notes for version 3.3.2
+
+NEW FEATURES
+==============
+
+o LANG-989: Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8
+
+FIXED BUGS
+============
+
+o LANG-992: NumberUtils#isNumber() returns false for "0.0", "0.4790", et al
+
+=============================================================================
+
+ Release Notes for version 3.3.1
+
+FIXED BUGS
+============
+
+o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong
+ days
+o LANG-983: DurationFormatUtils does not describe format string fully
+o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote char
+o LANG-984: DurationFormatUtils does not handle large durations correctly
+o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field
+ size should be 4 digits
+o LANG-978: Failing tests with Java 8 b128
+
+=============================================================================
+
+ Release Notes for version 3.3
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian GĂśtz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio FernĂĄndez.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+=============================================================================
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+=============================================================================
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+=============================================================================
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+=============================================================================
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12-hour clock and not
+ 24-hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.6.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.6.txt
new file mode 100644
index 000000000..78478c4a6
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.6.txt
@@ -0,0 +1,1124 @@
+
+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.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.6
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.6 version of
+Apache Commons Lang as well as a history all changes in the Commons Lang 3.x
+release line. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.6 at
+least requires Java 7.0. Note that this has changed from Commons Lang 3.5, which
+only required Java 1.6.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o The class org.apache.commons.lang3.concurrent.Memoizer is an implementation
+ of the Memoizer pattern as shown in
+ Goetz, Brian et al. (2006) - Java Concurrency in Practice, p. 108.
+o The class org.apache.commons.lang3.ArchUtils has been added. ArchUtils is
+ a utility class for the "os.arch" system property.
+
+DEPRECATIONS
+============
+
+The Apache Commons Community has recently set up the Commons Text component
+as a home for algorithms working on strings. For this reason most of the string
+focused functionality in Commons Lang has been deprecated and moved to
+Commons Text. This includes:
+
+o All classes in the org.apache.commons.lang3.text and the
+ org.apache.commons.lang3.text.translate packages
+o org.apache.commons.lang3.StringEscapeUtils
+o org.apache.commons.lang3.RandomStringUtils
+o The methods org.apache.commons.lang3.StringUtils.getJaroWinklerDistance and
+ org.apache.commons.lang3.StringUtils.getLevenshteinDistance
+
+For more information see the Commons Text website:
+
+ https://commons.apache.org/text
+
+The class org.apache.commons.lang3.CharEncoding has been deprecated in favor of
+java.nio.charset.StandardCharsets.
+
+The following methods have been deprecated in
+org.apache.commons.lang3.ArrayUtils in favor of the corresponding insert
+methods. Note that the handling for null inputs differs between add and insert.
+
+o add(boolean[], int, boolean) -> insert(int, boolean[], boolean...)
+o add(byte[], int, boolean) -> insert(int, byte[], byte...)
+o add(char[], int, boolean) -> insert(int, char[], char...)
+o add(double[], int, boolean) -> insert(int, double[], double...)
+o add(float[], int, boolean) -> insert(int, float[], float...)
+o add(int[], int, boolean) -> insert(int, int[], int...)
+o add(long[], int, boolean) -> insert(int, long[], long...)
+o add(short[], int, boolean) -> insert(int, short[], short...)
+o add(T[], int, boolean) -> insert(int, T[], T...)
+
+
+COMPATIBILITY WITH JAVA 9
+==================
+
+The MANIFEST.MF now contains an additional entry:
+
+ Automatic-Module-Name: org.apache.commons.lang3
+
+This should make it possible to use Commons Lang 3.6 as a module in the Java 9
+module system. For more information see the corresponding issue and the
+referenced mailing list discussions:
+
+ https://issues.apache.org/jira/browse/LANG-1338
+
+The build problems present in the 3.5 release have been resolved. Building
+Commons Lang 3.6 should work out of the box with the latest Java 9 EA build.
+Please report any Java 9 related issues at:
+
+ https://issues.apache.org/jira/browse/LANG
+
+NEW FEATURES
+============
+
+o LANG-1336: Add NUL Byte To CharUtils. Thanks to Beluga Behr.
+o LANG-1304: Add method in StringUtils to determine if string contains both
+ mixed cased characters. Thanks to Andy Klimczak.
+o LANG-1325: Increase test coverage of ToStringBuilder class to 100%.
+ Thanks to Arshad Basha.
+o LANG-1307: Add a method in StringUtils to extract only digits out of input
+ string. Thanks to Arshad Basha.
+o LANG-1256: Add JMH maven dependencies. Thanks to C0rWin.
+o LANG-1167: Add null filter to ReflectionToStringBuilder.
+ Thanks to Mark Dacek.
+o LANG-1299: Add method for converting string to an array of code points.
+o LANG-660: Add methods to insert arrays into arrays at an index.
+o LANG-1034: Add support for recursive comparison to
+ EqualsBuilder#reflectionEquals. Thanks to Yathos UG.
+o LANG-1067: Add a reflection-based variant of DiffBuilder.
+o LANG-740: Implementation of a Memoizer. Thanks to James Sawle.
+o LANG-1258: Add ArrayUtils#toStringArray method.
+ Thanks to IG, Grzegorz RoĹźniecki.
+o LANG-1160: StringUtils#abbreviate should support 'custom ellipses' parameter.
+o LANG-1293: Add StringUtils#isAllEmpty and #isAllBlank methods.
+ Thanks to Pierre Templier, Martin Tarjanyi.
+o LANG-1313: Add ArchUtils - An utility class for the "os.arch" system property.
+ Thanks to Tomschi.
+o LANG-1272: Add shuffle methods to ArrayUtils.
+o LANG-1317: Add MethodUtils#findAnnotation and extend
+ MethodUtils#getMethodsWithAnnotation for non-public, super-class
+ and interface methods. Thanks to Yasser Zamani.
+o LANG-1331: Add ImmutablePair.nullPair().
+o LANG-1332: Add ImmutableTriple.nullTriple().
+
+FIXED BUGS
+==========
+
+o LANG-1337: Fix test failures in IBM JDK 8 for ToStringBuilderTest.
+o LANG-1319: MultilineRecursiveToStringStyle StackOverflowError when object is
+ an array.
+o LANG-1320: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code followed by variant.
+o LANG-1300: Clarify or improve behavior of int-based indexOf methods in
+ StringUtils. Thanks to Mark Dacek.
+o LANG-1286: RandomStringUtils random method can overflow and return characters
+ outside of specified range.
+o LANG-1292: WordUtils.wrap throws StringIndexOutOfBoundsException.
+o LANG-1287: RandomStringUtils#random can enter infinite loop if end parameter
+ is to small. Thanks to Ivan Morozov.
+o LANG-1285: NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to Francesco Chicchiriccò.
+o LANG-1281: Javadoc of StringUtils.ordinalIndexOf is contradictory.
+ Thanks to Andreas Lundblad.
+o LANG-1188: StringUtils#join(T...): warning: [unchecked] Possible heap
+ pollution from parameterized vararg type T.
+o LANG-1144: Multiple calls of
+ org.apache.commons.lang3.concurrent.LazyInitializer.initialize()
+ are possible. Thanks to Waldemar Maier, Gary Gregory.
+o LANG-1276: StrBuilder#replaceAll ArrayIndexOutOfBoundsException.
+ Thanks to Andy Klimczak.
+o LANG-1278: BooleanUtils javadoc issues. Thanks to Duke Yin.
+o LANG-1070: ArrayUtils#add confusing example in javadoc.
+ Thanks to Paul Pogonyshev.
+o LANG-1271: StringUtils#isAnyEmpty and #isAnyBlank should return false for an
+ empty array. Thanks to Pierre Templier.
+o LANG-1155: Add StringUtils#unwrap. Thanks to Saif Asif, Thiago Andrade.
+o LANG-1311: TypeUtils.toString() doesn't handle primitive and Object arrays
+ correctly. Thanks to Aaron Digulla.
+o LANG-1312: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code.
+o LANG-1265: Build failures when building with Java 9 EA.
+o LANG-1314: javadoc creation broken with Java 8. Thanks to Allon Murienik.
+o LANG-1310: MethodUtils.invokeMethod throws ArrayStoreException if using
+ varargs arguments and smaller types than the method defines.
+ Thanks to Don Jeba.
+
+CHANGES
+=======
+
+o LANG-1338: Add Automatic-Module-Name MANIFEST entry for Java 9
+ compatibility.
+o LANG-1334: Deprecate CharEncoding in favour of
+ java.nio.charset.StandardCharsets.
+o LANG-1110: Implement HashSetvBitSetTest using JMH.
+ Thanks to Bruno P. Kinoshita.
+o LANG-1290: Increase test coverage of org.apache.commons.lang3.ArrayUtils.
+ Thanks to Andrii Abramov.
+o LANG-1274: StrSubstitutor should state its thread safety.
+o LANG-1277: StringUtils#getLevenshteinDistance reduce memory consumption.
+ Thanks to yufcuy.
+o LANG-1279: Update Java requirement from Java 6 to 7.
+o LANG-1143: StringUtils should use toXxxxCase(int) rather than
+ toXxxxCase(char). Thanks to sebb.
+o LANG-1297: Add SystemUtils.getHostName() API.
+o LANG-1301: Moving apache-rat-plugin configuration into pluginManagement.
+ Thanks to Karl Heinz Marbaise.
+o LANG-1316: Deprecate classes/methods moved to commons-text.
+
+=============================================================================
+
+ Release Notes for version 3.5
+
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o Added Java 9 detection to org.apache.commons.lang3.SystemUtils.
+o Support for shifting and swapping elements in
+ org.apache.commons.lang3.ArrayUtils.
+o New methods for generating random strings from different character classes
+ including alphabetic, alpha-numeric and ASCII added to
+ org.apache.commons.lang3.RandomStringUtils.
+o Numerous extensions to org.apache.commons.lang3.StringUtils including
+ null safe compare variants, more remove and replace variants, rotation and
+ truncation.
+o Added org.apache.commons.lang3.ThreadUtils - a utility class to work with
+ instances of java.lang.Thread and java.lang.ThreadGroup.
+o Added annotations @EqualsExclude, @HashCodeExclude and @ToStringExclude to
+ mark fields which should be ignored by the reflective builders in the
+ org.apache.commons.lang3.builder package.
+o Support for various modify and retrieve value use cases added to the classes
+ in org.apache.commons.lang3.mutable.
+
+COMPATIBILITY
+=============
+
+Apache Commons Lang 3.5 is binary compatible with the 3.4 release. Users
+should not experience any problems when upgrading from 3.4 to 3.5.
+
+There has been an addition to the org.apache.commons.lang3.time.DatePrinter
+interface:
+
+o Added method 'public boolean parse(java.lang.String, java.text.ParsePosition,
+ java.util.Calendar)'
+o Added method 'public java.lang.Appendable format(long, java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Date,
+ java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Calendar,
+ java.lang.Appendable)'
+
+For this reason 3.5 is not strictly source compatible to 3.4. Since the
+DatePrinter interface is not meant to be implemented by clients, this
+change it not considered to cause any problems.
+
+JAVA 9 SUPPORT
+==============
+
+Java 9 introduces a new version-string scheme. Details of this new scheme are
+documented in JEP-223 (https://openjdk.org/jeps/223). In order to support
+JEP-223 two classes had to be changed:
+
+o org.apache.commons.lang3.JavaVersion
+ deprecated enum constant JAVA_1_9
+ introduced enum constant JAVA_9
+
+o org.apache.commons.lang3.SystemUtils
+ deprecated constant IS_JAVA_1_9
+ introduced constant IS_JAVA_9
+
+For more information see LANG-1197
+(https://issues.apache.org/jira/browse/LANG-1197). All other APIs are expected
+to work with Java 9.
+
+BUILDING ON JAVA 9
+==================
+
+Java 8 introduced the Unicode Consortium's Common Locale Data Repository as
+alternative source for locale data. Java 9 will use the CLDR provider as
+default provider for locale data (see https://openjdk.org/jeps/252). This
+causes an number of locale-sensitive test in Commons Lang to fail. In order
+to build Commons Lang 3.5 on Java 9, the locale provider has to be set to
+'JRE':
+
+ mvn -Djava.locale.providers=JRE clean install
+
+We are currently investigating ways to support building on Java 9 without
+further configuration. For more information see:
+https://issues.apache.org/jira/browse/LANG-1265
+
+
+NEW FEATURES
+==============
+
+o LANG-1275: Added a tryAcquire() method to TimedSemaphore.
+o LANG-1255: Add DateUtils.toCalendar(Date, TimeZone). Thanks to Kaiyuan Wang.
+o LANG-1023: Add WordUtils.wrap overload with customizable breakable character.
+ Thanks to Marko Bekhta.
+o LANG-787: Add method removeIgnoreCase(String, String) to StringUtils. Thanks
+ to Gokul Nanthakumar C.
+o LANG-1224: Extend RandomStringUtils with methods that generate strings
+ between a min and max length. Thanks to Caleb Cushing.
+o LANG-1257: Add APIs StringUtils.wrapIfMissing(String, char|String). Thanks to
+ Gary Gregory.
+o LANG-1253: Add RandomUtils#nextBoolean() method. Thanks to adilek.
+o LANG-1085: Add a circuit breaker implementation. Thanks to Oliver Heger and
+ Bruno P. Kinoshita.
+o LANG-1013: Add StringUtils.truncate(). Thanks to Thiago Andrade.
+o LANG-1195: Enhance MethodUtils to allow invocation of private methods. Thanks
+ to Derek C. Ashmore.
+o LANG-1189: Add getAndIncrement/getAndDecrement/getAndAdd/incrementAndGet/
+ decrementAndGet/addAndGet in Mutable* classes. Thanks to
+ Haiyang Li and Matthew Bartenschlag.
+o LANG-1225: Add RandomStringUtils#randomGraph and #randomPrint which match
+ corresponding regular expression class. Thanks to Caleb Cushing.
+o LANG-1223: Add StopWatch#getTime(TimeUnit). Thanks to Nick Manley.
+o LANG-781: Add methods to ObjectUtils class to check for null elements in the
+ array. Thanks to Krzysztof Wolny.
+o LANG-1228: Prefer Throwable.getCause() in ExceptionUtils.getCause().
+ Thanks to Brad Hess.
+o LANG-1233: DiffBuilder add method to allow appending from a DiffResult.
+ Thanks to Nick Manley.
+o LANG-1168: Add SystemUtils.IS_OS_WINDOWS_10 property.
+ Thanks to Pascal Schumacher.
+o LANG-1115: Add support for varargs in ConstructorUtils, MemberUtils, and
+ MethodUtils. Thanks to Jim Lloyd and Joe Ferner.
+o LANG-1134: Add methods to check numbers against NaN and infinite to
+ Validate. Thanks to Alan Smithee.
+o LANG-1220: Add tests for missed branches in DateUtils.
+ Thanks to Casey Scarborough.
+o LANG-1146: z/OS identification in SystemUtils.
+ Thanks to Gabor Liptak.
+o LANG-1192: FastDateFormat support of the week-year component (uppercase 'Y').
+ Thanks to Dominik Stadler.
+o LANG-1169: Add StringUtils methods to compare a string to multiple strings.
+ Thanks to Rafal Glowinski, Robert Parr and Arman Sharif.
+o LANG-1185: Add remove by regular expression methods in StringUtils.
+o LANG-1139: Add replace by regular expression methods in StringUtils.
+o LANG-1171: Add compare methods in StringUtils.
+o LANG-1174: Add sugar to RandomUtils. Thanks to Punkratz312.
+o LANG-1154: FastDateFormat APIs that use a StringBuilder. Thanks to
+ Gary Gregory.
+o LANG-1149: Ability to throw checked exceptions without declaring them. Thanks
+ to Gregory Zak.
+o LANG-1153: Implement ParsePosition api for FastDateParser.
+o LANG-1137: Add check for duplicate event listener in EventListenerSupport.
+ Thanks to Matthew Aguirre.
+o LANG-1135: Add method containsAllWords to WordUtils. Thanks to
+ Eduardo Martins.
+o LANG-1132: ReflectionToStringBuilder doesn't throw IllegalArgumentException
+ when the constructor's object param is null. Thanks to Jack Tan.
+o LANG-701: StringUtils join with var args. Thanks to James Sawle.
+o LANG-1105: Add ThreadUtils - A utility class which provides helper methods
+ related to java.lang.Thread Issue: LANG-1105. Thanks to
+ Hendrik Saly.
+o LANG-1031: Add annotations to exclude fields from ReflectionEqualsBuilder,
+ ReflectionToStringBuilder and ReflectionHashCodeBuilder. Thanks
+ to Felipe Adorno.
+o LANG-1127: Use JUnit rules to set and reset the default Locale and TimeZone.
+o LANG-1119: Add rotate(string, int) method to StringUtils. Thanks to
+ Loic Guibert.
+o LANG-1099: Add swap and shift operations for arrays to ArrayUtils. Thanks to
+ Adrian Ber.
+o LANG-1050: Change nullToEmpty methods to generics. Thanks to James Sawle.
+o LANG-1074: Add a method to ArrayUtils for removing all occurrences of a given
+ element Issue: LANG-1074. Thanks to Haiyang Li.
+
+FIXED BUGS
+============
+
+o LANG-1261: ArrayUtils.contains returns false for instances of subtypes.
+o LANG-1252: Rename NumberUtils.isNumber, isCreatable to better reflect
+ createNumber. Also, accommodated for "+" symbol as prefix in
+ isCreatable and isNumber. Thanks to Rob Tompkins.
+o LANG-1230: Remove unnecessary synchronization from registry lookup in
+ EqualsBuilder and HashCodeBuilder. Thanks to Philippe Marschall.
+o LANG-1214: Handle "void" in ClassUtils.getClass(). Thanks to Henry Tung.
+o LANG-1250: SerializationUtils#deserialize has unnecessary code and a comment
+ for that. Thanks to Glease Wang.
+o LANG-1190: TypeUtils.isAssignable throws NullPointerException when fromType
+ has type variables and toType generic superclass specifies type
+ variable. Thanks to Pascal Schumacher.
+o LANG-1226: StringUtils#normalizeSpace does not trim the string anymore.
+ Thanks to Pascal Schumacher.
+o LANG-1251: SerializationUtils.ClassLoaderAwareObjectInputStream should use
+ static initializer to initialize primitiveTypes map. Thanks to
+ Takuya Ueshin.
+o LANG-1248: FastDatePrinter Memory allocation regression. Thanks to
+ Benoit Wiart.
+o LANG-1018: Fix precision loss on NumberUtils.createNumber(String). Thanks to
+ Nick Manley.
+o LANG-1199: Fix implementation of StringUtils.getJaroWinklerDistance(). Thanks
+ to M. Steiger.
+o LANG-1244: Fix dead links in StringUtils.getLevenshteinDistance() javadoc.
+ Thanks to jjbankert.
+o LANG-1242: "\u2284":"?" mapping missing from
+ EntityArrays#HTML40_EXTENDED_ESCAPE. Thanks to Neal Stewart.
+o LANG-901: StringUtils#startsWithAny/endsWithAny is case sensitive -
+ documented as case insensitive. Thanks to Matthew Bartenschlag.
+o LANG-1232: DiffBuilder: Add null check on fieldName when appending Object or
+ Object[]. Thanks to Nick Manley.
+o LANG-1178: ArrayUtils.removeAll(Object array, int... indices) should do the
+ clone, not its callers. Thanks to Henri Yandell.
+o LANG-1120: StringUtils.stripAccents should remove accents from "Ł" and "ł".
+ Thanks to kaching88.
+o LANG-1205: NumberUtils.createNumber() behaves inconsistently with
+ NumberUtils.isNumber(). Thanks to pbrose.
+o LANG-1222: Fix for incorrect comment on StringUtils.containsIgnoreCase
+ method. Thanks to Adam J.
+o LANG-1221: Fix typo on appendIfMissing javadoc. Thanks to Pierre Templier.
+o LANG-1202: parseDateStrictly doesn't pass specified locale. Thanks to
+ Markus Jelsma.
+o LANG-1219: FastDateFormat doesn't respect summer daylight in some localized
+ strings. Thanks to Jarek.
+o LANG-1175: Remove Ant-based build.
+o LANG-1194: Limit max heap memory for consistent Travis CI build.
+o LANG-1186: Fix NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to NickManley.
+o LANG-1193: ordinalIndexOf("abc", "ab", 1) gives incorrect answer of -1
+ (correct answer should be 0); revert fix for LANG-1077. Thanks to
+ Qin Li.
+o LANG-1002: Several predefined ISO FastDateFormats in DateFormatUtils are
+ incorrect. Thanks to Michael Osipov.
+o LANG-1152: StringIndexOutOfBoundsException or field over-write for large year
+ fields in FastDateParser. Thanks to Pas Filip.
+o LANG-1141: StrLookup.systemPropertiesLookup() no longer reacts on changes on
+ system properties.
+o LANG-1147: EnumUtils *BitVector issue with more than 32 values Enum. Thanks
+ to Loic Guibert.
+o LANG-1059: Capitalize javadoc is incorrect. Thanks to Colin Casey.
+o LANG-1122: Inconsistent behavior of swap for malformed inputs. Thanks to
+ Adrian Ber.
+o LANG-1130: Fix critical issues reported by SonarQube.
+o LANG-1131: StrBuilder.equals(StrBuilder) doesn't check for null inputs.
+o LANG-1128: JsonToStringStyle doesn't handle chars and objects correctly.
+ Thanks to Jack Tan.
+o LANG-1126: DateFormatUtilsTest.testSMTP depends on the default Locale.
+o LANG-1123: Unit test FastDatePrinterTimeZonesTest needs a timezone set.
+ Thanks to Christian P. Momon.
+o LANG-916: DateFormatUtils.format does not correctly change Calendar
+ TimeZone in certain situations. Thanks to Christian P. Momon.
+o LANG-1116: DateUtilsTest.testLang530 fails for some timezones. Thanks to
+ Aaron Sheldon.
+o LANG-1114: TypeUtils.ParameterizedType#equals doesn't work with wildcard
+ types. Thanks to Andy Coates.
+o LANG-1118: StringUtils.repeat('z', -1) throws NegativeArraySizeException.
+ Thanks to Loic Guibert.
+o LANG-1111: Fix FindBugs warnings in DurationFormatUtils.
+o LANG-1162: StringUtils#equals fails with Index OOBE on non-Strings with
+ identical leading prefix..
+o LANG-1163: There are no tests for CharSequenceUtils.regionMatches.
+o LANG-1200: Fix Javadoc of StringUtils.ordinalIndexOf. Thanks to BarkZhang.
+o LANG-1191: Incorrect Javadoc
+ StringUtils.containsAny(CharSequence, CharSequence...). Thanks to
+ qed, Brent Worden and Gary Gregory.
+
+CHANGES
+=========
+o LANG-1197: Prepare Java 9 detection.
+o LANG-1262: CompareToBuilder.append(Object, Object, Comparator) method is too
+ big to be inlined. Thanks to Ruslan Cheremin.
+o LANG-1259: Javadoc for ArrayUtils.isNotEmpty() is slightly misleading. Thanks
+ to Dominik Stadler.
+o LANG-1247: FastDatePrinter generates extra Date objects. Thanks to
+ Benoit Wiart.
+o LANG-1229: HashCodeBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1243: Simplify ArrayUtils removeElements by using new decrementAndGet()
+ method.
+o LANG-1240: Optimize BitField constructor implementation. Thanks to zhanhb.
+o LANG-1206: Improve CharSetUtils.squeeze() performance. Thanks to
+ Mohammed Alfallaj.
+o LANG-1176: Improve ArrayUtils removeElements time complexity to O(n). Thanks
+ to Jeffery Yuan.
+o LANG-1234: getLevenshteinDistance with a threshold: optimize implementation
+ if the strings lengths differ more than the threshold. Thanks to
+ Jonatan JĂśnsson.
+o LANG-1151: Performance improvements for NumberUtils.isParsable. Thanks to
+ Juan Pablo Santos RodrĂ­guez.
+o LANG-1218: EqualsBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1210: StringUtils#startsWithAny has error in Javadoc. Thanks to
+ Matthias Niehoff.
+o LANG-1208: StrSubstitutor can preserve escapes. Thanks to Samuel Karp.
+o LANG-1182: Clarify Javadoc of StringUtils.containsAny(). Thanks to
+ Larry West and Pascal Schumacher.
+o LANG-1183: Making replacePattern/removePattern methods null safe in
+ StringUtils.
+o LANG-1057: Replace StringBuilder with String concatenation for better
+ optimization. Thanks to OtĂĄvio Santana.
+o LANG-1075: Deprecate SystemUtils.FILE_SEPARATOR and
+ SystemUtils.PATH_SEPARATOR.
+o LANG-979: TypeUtils.parameterizeWithOwner - wrong format descriptor for
+ "invalid number of type parameters". Thanks to Bruno P. Kinoshita.
+o LANG-1112: MultilineRecursiveToStringStyle largely unusable due to being
+ package-private.
+o LANG-1058: StringUtils.uncapitalize performance improvement. Thanks to
+ Leo Wang.
+o LANG-1069: CharSet.getInstance documentation does not clearly explain how
+ to include negation character in set. Thanks to Arno Noordover.
+o LANG-1107: Fix parsing edge cases in FastDateParser.
+o LANG-1273: Added new property IS_OS_MAC_OSX_EL_CAPITAN in SystemUtils. Thanks
+ to Jake Wang.
+
+=============================================================================
+
+ Release Notes for version 3.4
+
+
+COMPATIBILITY
+=============
+
+Commons Lang 3.4 is fully binary compatible to the last release and can
+therefore be used as a drop in replacement for 3.3.2. Note that the value of
+org.apache.commons.lang3.time.DurationFormatUtils.ISO_EXTENDED_FORMAT_PATTERN
+has changed, which may affect clients using the constant. Furthermore the
+constant is used internally in
+o DurationFormatUtils.formatDurationISO(long)
+o DurationFormatUtils.formatPeriodISO(long, long)
+
+For more information see https://issues.apache.org/jira/browse/LANG-1000.
+
+NEW FEATURES
+==============
+
+o LANG-821: Support OS X versions in SystemUtils. Thanks to Timo Kockert.
+o LANG-1103: Add SystemUtils.IS_JAVA_1_9
+o LANG-1093: Add ClassUtils.getAbbreviatedName(). Thanks to Fabian Lange.
+o LANG-1082: Add option to disable the "objectsTriviallyEqual" test in
+ DiffBuilder. Thanks to Jonathan Baker.
+o LANG-1015: Add JsonToStringStyle implementation to ToStringStyle. Thanks to
+ Thiago Andrade.
+o LANG-1080: Add NoClassNameToStringStyle implementation of ToStringStyle.
+ Thanks to Innokenty Shuvalov.
+o LANG-883: Add StringUtils.containsAny(CharSequence, CharSequence...) method.
+ Thanks to Daniel Stewart.
+o LANG-1052: Multiline recursive to string style. Thanks to Jan Matèrne.
+o LANG-536: Add isSorted() to ArrayUtils. Thanks to James Sawle.
+o LANG-1033: Add StringUtils.countMatches(CharSequence, char)
+o LANG-1021: Provide methods to retrieve all fields/methods annotated with a
+ specific type. Thanks to Alexander MĂźller.
+o LANG-1016: NumberUtils#isParsable method(s). Thanks to
+ Juan Pablo Santos RodrĂ­guez.
+o LANG-999: Add fuzzy String matching logic to StringUtils. Thanks to
+ Ben Ripkens.
+o LANG-994: Add zero copy read method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-993: Add zero copy write method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-1044: Add method MethodUtils.invokeExactMethod(Object, String)
+o LANG-1045: Add method MethodUtils.invokeMethod(Object, String)
+
+FIXED BUGS
+============
+
+o LANG-794: SystemUtils.IS_OS_WINDOWS_2008, VISTA are incorrect. Thanks to
+ Timo Kockert.
+o LANG-1104: Parse test fails for TimeZone America/Sao_Paulo
+o LANG-948: Exception while using ExtendedMessageFormat and escaping braces.
+ Thanks to Andrey Khobnya.
+o LANG-1092: Wrong formatting of time zones with daylight saving time in
+ FastDatePrinter
+o LANG-1090: FastDateParser does not set error indication in ParsePosition
+o LANG-1089: FastDateParser does not handle excess hours as per
+ SimpleDateFormat
+o LANG-1061: FastDateParser error - timezones not handled correctly. Thanks to
+ dmeneses.
+o LANG-1087: NumberUtils#createNumber() returns positive BigDecimal when
+ negative Float is expected. Thanks to Renat Zhilkibaev.
+o LANG-1081: DiffBuilder.append(String, Object left, Object right) does not do
+ a left.equals(right) check. Thanks to Jonathan Baker.
+o LANG-1055: StrSubstitutor.replaceSystemProperties does not work consistently.
+ Thanks to Jonathan Baker.
+o LANG-1083: Add (T) casts to get unit tests to pass in old JDK. Thanks to
+ Jonathan Baker.
+o LANG-1073: Read wrong component type of array in add in ArrayUtils.
+ Thanks to haiyang li.
+o LANG-1077: StringUtils.ordinalIndexOf("aaaaaa", "aa", 2) != 3 in StringUtils.
+ Thanks to haiyang li.
+o LANG-1072: Duplicated "0x" check in createBigInteger in NumberUtils. Thanks
+ to haiyang li.
+o LANG-1064: StringUtils.abbreviate description doesn't agree with the
+ examples. Thanks to B.J. Herbison.
+o LANG-1041: Fix MethodUtilsTest so it does not depend on JDK method ordering.
+ Thanks to Alexandre Bartel.
+o LANG-1000: ParseException when trying to parse UTC dates with Z as zone
+ designator using DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT
+o LANG-1035: Javadoc for EqualsBuilder.reflectionEquals() is unclear
+o LANG-1001: ISO 8601 misspelled throughout the Javadocs. Thanks to
+ Michael Osipov.
+o LANG-1088: FastDateParser should be case insensitive
+o LANG-995: Fix bug with stripping spaces on last line in WordUtils.wrap().
+ Thanks to Andrey Khobnya.
+
+CHANGES
+=========
+
+o LANG-1102: Make logic for comparing OS versions in SystemUtils smarter
+o LANG-1091: Shutdown thread pools in test cases. Thanks to Fabian Lange.
+o LANG-1101: FastDateParser and FastDatePrinter support 'X' format
+o LANG-1100: Avoid memory allocation when using date formatting to StringBuffer.
+ Thanks to mbracher.
+o LANG-935: Possible performance improvement on string escape functions.
+ Thanks to Fabian Lange, Thomas Neidhart.
+o LANG-1098: Avoid String allocation in StrBuilder.append(CharSequence). Thanks
+ to Mikhail Mazurskiy, Fabian Lange.
+o LANG-1098: Update maven-checkstyle-plugin to 2.14. Thanks to Micha? Kordas.
+o LANG-1097: Update org.easymock:easymock to 3.3.1. Thanks to Micha? Kordas.
+o LANG-1096: Update maven-pmd-plugin to 3.4. Thanks to Micha? Kordas.
+o LANG-1095: Update maven-antrun-plugin to 1.8. Thanks to Micha? Kordas.
+o LANG-877: Performance improvements for StringEscapeUtils. Thanks to
+ Fabian Lange.
+o LANG-1071: Fix wrong examples in Javadoc of
+ StringUtils.replaceEachRepeatedly(...),
+ StringUtils.replaceEach(...) Thanks to Arno Noordover.
+o LANG-827: CompareToBuilder's doc doesn't specify precedence of fields it
+ uses in performing comparisons
+o LANG-1020: Improve performance of normalize space. Thanks to Libor Ondrusek.
+o LANG-1027: org.apache.commons.lang3.SystemUtils#isJavaVersionAtLeast should
+ return true by default
+o LANG-1026: Bring static method references in StringUtils to consistent style.
+ Thanks to Alex Yursha.
+o LANG-1017: Use non-ASCII digits in Javadoc examples for
+ StringUtils.isNumeric. Thanks to Christoph Schneegans.
+o LANG-1008: Change min/max methods in NumberUtils/IEEE754rUtils from array
+ input parameters to varargs. Thanks to Thiago Andrade.
+o LANG-1006: Add wrap (with String or char) to StringUtils. Thanks to
+ Thiago Andrade.
+o LANG-1005: Extend DurationFormatUtils#formatDurationISO default pattern to
+ match #formatDurationHMS. Thanks to Michael Osipov.
+o LANG-1007: Fixing NumberUtils JAVADoc comments for max methods. Thanks to
+ Thiago Andrade.
+o LANG-731: Better Javadoc for BitField class
+o LANG-1004: DurationFormatUtils#formatDurationHMS implementation does not
+ correspond to Javadoc and vice versa. Thanks to Michael Osipov.
+o LANG-1003: DurationFormatUtils are not able to handle negative
+ durations/periods
+o LANG-998: Javadoc is not clear on preferred pattern to instantiate
+ FastDateParser / FastDatePrinter
+
+=============================================================================
+
+ Release Notes for version 3.3.2
+
+NEW FEATURES
+==============
+
+o LANG-989: Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8
+
+FIXED BUGS
+============
+
+o LANG-992: NumberUtils#isNumber() returns false for "0.0", "0.4790", et al
+
+=============================================================================
+
+ Release Notes for version 3.3.1
+
+FIXED BUGS
+============
+
+o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong
+ days
+o LANG-983: DurationFormatUtils does not describe format string fully
+o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote char
+o LANG-984: DurationFormatUtils does not handle large durations correctly
+o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field
+ size should be 4 digits
+o LANG-978: Failing tests with Java 8 b128
+
+=============================================================================
+
+ Release Notes for version 3.3
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian GĂśtz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio FernĂĄndez.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+=============================================================================
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+=============================================================================
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+=============================================================================
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+=============================================================================
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12 hour clock and not
+ 24 hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.7.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.7.txt
new file mode 100644
index 000000000..d71f1e804
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.7.txt
@@ -0,0 +1,1176 @@
+
+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.
+
+
+ Apache Commons Lang
+ Version 3.7
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.7 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 5.0, making use of features that arrived with Java 5.0 such as generics,
+variable arguments, autoboxing, concurrency and formatted output.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.
+
+Changes in this version include:
+
+New features:
+o LANG-1355: TimeZone.getTimeZone() in FastDateParser causes resource contention (PR #296.) Thanks to Chas Honton.
+o LANG-1360: Add methods to ObjectUtils to get various forms of class names in a null-safe manner Thanks to Gary Gregory.
+
+Fixed Bugs:
+o LANG-1362: Fix tests DateUtilsTest for Java 9 with en_GB locale Thanks to Stephen Colebourne.
+o LANG-1365: Fix NullPointerException in isJavaVersionAtLeast on Java 10, add SystemUtils.IS_JAVA_10, add JavaVersion.JAVA_10 Thanks to Gary Gregory.
+o LANG-1348: StackOverflowError on TypeUtils.toString(...) for a generic return type of Enum.valueOf Thanks to mbusso.
+o LANG-1350: ConstructorUtils.invokeConstructor(Class, Object...) regression Thanks to Brett Kail.
+o LANG-1349: EqualsBuilder#isRegistered: swappedPair construction bug Thanks to Naman Nigam.
+o LANG-1357: org.apache.commons.lang3.time.FastDateParser should use toUpperCase(Locale) Thanks to BruceKuiLiu.
+
+Changes:
+o LANG-1358: Improve StringUtils#replace throughput Thanks to Stephane Landelle.
+o LANG-1346: Remove deprecation from RandomStringUtils
+o LANG-1361: ExceptionUtils.getThrowableList() is using deprecated ExceptionUtils.getCause() Thanks to Ana.
+
+
+Historical list of changes: https://commons.apache.org/proper/commons-lang/changes-report.html
+
+For complete information on Apache Commons Lang, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Lang website:
+
+https://commons.apache.org/proper/commons-lang/
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.6
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.6 version of
+Apache Commons Lang as well as a history all changes in the Commons Lang 3.x
+release line. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.6 at
+least requires Java 7.0. Note that this has changed from Commons Lang 3.5, which
+only required Java 1.6.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o The class org.apache.commons.lang3.concurrent.Memoizer is an implementation
+ of the Memoizer pattern as shown in
+ Goetz, Brian et al. (2006) - Java Concurrency in Practice, p. 108.
+o The class org.apache.commons.lang3.ArchUtils has been added. ArchUtils is
+ a utility class for the "os.arch" system property.
+
+DEPRECATIONS
+============
+
+The Apache Commons Community has recently set up the Commons Text component
+as a home for algorithms working on strings. For this reason most of the string
+focused functionality in Commons Lang has been deprecated and moved to
+Commons Text. This includes:
+
+o All classes in the org.apache.commons.lang3.text and the
+ org.apache.commons.lang3.text.translate packages
+o org.apache.commons.lang3.StringEscapeUtils
+o org.apache.commons.lang3.RandomStringUtils
+o The methods org.apache.commons.lang3.StringUtils.getJaroWinklerDistance and
+ org.apache.commons.lang3.StringUtils.getLevenshteinDistance
+
+For more information see the Commons Text website:
+
+ https://commons.apache.org/text
+
+The class org.apache.commons.lang3.CharEncoding has been deprecated in favor of
+java.nio.charset.StandardCharsets.
+
+The following methods have been deprecated in
+org.apache.commons.lang3.ArrayUtils in favor of the corresponding insert
+methods. Note that the handling for null inputs differs between add and insert.
+
+o add(boolean[], int, boolean) -> insert(int, boolean[], boolean...)
+o add(byte[], int, boolean) -> insert(int, byte[], byte...)
+o add(char[], int, boolean) -> insert(int, char[], char...)
+o add(double[], int, boolean) -> insert(int, double[], double...)
+o add(float[], int, boolean) -> insert(int, float[], float...)
+o add(int[], int, boolean) -> insert(int, int[], int...)
+o add(long[], int, boolean) -> insert(int, long[], long...)
+o add(short[], int, boolean) -> insert(int, short[], short...)
+o add(T[], int, boolean) -> insert(int, T[], T...)
+
+
+COMPATIBILITY WITH JAVA 9
+==================
+
+The MANIFEST.MF now contains an additional entry:
+
+ Automatic-Module-Name: org.apache.commons.lang3
+
+This should make it possible to use Commons Lang 3.6 as a module in the Java 9
+module system. For more information see the corresponding issue and the
+referenced mailing list discussions:
+
+ https://issues.apache.org/jira/browse/LANG-1338
+
+The build problems present in the 3.5 release have been resolved. Building
+Commons Lang 3.6 should work out of the box with the latest Java 9 EA build.
+Please report any Java 9 related issues at:
+
+ https://issues.apache.org/jira/browse/LANG
+
+NEW FEATURES
+============
+
+o LANG-1336: Add NUL Byte To CharUtils. Thanks to Beluga Behr.
+o LANG-1304: Add method in StringUtils to determine if string contains both
+ mixed cased characters. Thanks to Andy Klimczak.
+o LANG-1325: Increase test coverage of ToStringBuilder class to 100%.
+ Thanks to Arshad Basha.
+o LANG-1307: Add a method in StringUtils to extract only digits out of input
+ string. Thanks to Arshad Basha.
+o LANG-1256: Add JMH maven dependencies. Thanks to C0rWin.
+o LANG-1167: Add null filter to ReflectionToStringBuilder.
+ Thanks to Mark Dacek.
+o LANG-1299: Add method for converting string to an array of code points.
+o LANG-660: Add methods to insert arrays into arrays at an index.
+o LANG-1034: Add support for recursive comparison to
+ EqualsBuilder#reflectionEquals. Thanks to Yathos UG.
+o LANG-1067: Add a reflection-based variant of DiffBuilder.
+o LANG-740: Implementation of a Memoizer. Thanks to James Sawle.
+o LANG-1258: Add ArrayUtils#toStringArray method.
+ Thanks to IG, Grzegorz RoĹźniecki.
+o LANG-1160: StringUtils#abbreviate should support 'custom ellipses' parameter.
+o LANG-1293: Add StringUtils#isAllEmpty and #isAllBlank methods.
+ Thanks to Pierre Templier, Martin Tarjanyi.
+o LANG-1313: Add ArchUtils - An utility class for the "os.arch" system property.
+ Thanks to Tomschi.
+o LANG-1272: Add shuffle methods to ArrayUtils.
+o LANG-1317: Add MethodUtils#findAnnotation and extend
+ MethodUtils#getMethodsWithAnnotation for non-public, super-class
+ and interface methods. Thanks to Yasser Zamani.
+o LANG-1331: Add ImmutablePair.nullPair().
+o LANG-1332: Add ImmutableTriple.nullTriple().
+
+FIXED BUGS
+==========
+
+o LANG-1337: Fix test failures in IBM JDK 8 for ToStringBuilderTest.
+o LANG-1319: MultilineRecursiveToStringStyle StackOverflowError when object is
+ an array.
+o LANG-1320: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code followed by variant.
+o LANG-1300: Clarify or improve behavior of int-based indexOf methods in
+ StringUtils. Thanks to Mark Dacek.
+o LANG-1286: RandomStringUtils random method can overflow and return characters
+ outside of specified range.
+o LANG-1292: WordUtils.wrap throws StringIndexOutOfBoundsException.
+o LANG-1287: RandomStringUtils#random can enter infinite loop if end parameter
+ is to small. Thanks to Ivan Morozov.
+o LANG-1285: NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to Francesco Chicchiriccò.
+o LANG-1281: Javadoc of StringUtils.ordinalIndexOf is contradictory.
+ Thanks to Andreas Lundblad.
+o LANG-1188: StringUtils#join(T...): warning: [unchecked] Possible heap
+ pollution from parameterized vararg type T.
+o LANG-1144: Multiple calls of
+ org.apache.commons.lang3.concurrent.LazyInitializer.initialize()
+ are possible. Thanks to Waldemar Maier, Gary Gregory.
+o LANG-1276: StrBuilder#replaceAll ArrayIndexOutOfBoundsException.
+ Thanks to Andy Klimczak.
+o LANG-1278: BooleanUtils javadoc issues. Thanks to Duke Yin.
+o LANG-1070: ArrayUtils#add confusing example in javadoc.
+ Thanks to Paul Pogonyshev.
+o LANG-1271: StringUtils#isAnyEmpty and #isAnyBlank should return false for an
+ empty array. Thanks to Pierre Templier.
+o LANG-1155: Add StringUtils#unwrap. Thanks to Saif Asif, Thiago Andrade.
+o LANG-1311: TypeUtils.toString() doesn't handle primitive and Object arrays
+ correctly. Thanks to Aaron Digulla.
+o LANG-1312: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code.
+o LANG-1265: Build failures when building with Java 9 EA.
+o LANG-1314: javadoc creation broken with Java 8. Thanks to Allon Murienik.
+o LANG-1310: MethodUtils.invokeMethod throws ArrayStoreException if using
+ varargs arguments and smaller types than the method defines.
+ Thanks to Don Jeba.
+
+CHANGES
+=======
+
+o LANG-1338: Add Automatic-Module-Name MANIFEST entry for Java 9
+ compatibility.
+o LANG-1334: Deprecate CharEncoding in favour of
+ java.nio.charset.StandardCharsets.
+o LANG-1110: Implement HashSetvBitSetTest using JMH.
+ Thanks to Bruno P. Kinoshita.
+o LANG-1290: Increase test coverage of org.apache.commons.lang3.ArrayUtils.
+ Thanks to Andrii Abramov.
+o LANG-1274: StrSubstitutor should state its thread safety.
+o LANG-1277: StringUtils#getLevenshteinDistance reduce memory consumption.
+ Thanks to yufcuy.
+o LANG-1279: Update Java requirement from Java 6 to 7.
+o LANG-1143: StringUtils should use toXxxxCase(int) rather than
+ toXxxxCase(char). Thanks to sebb.
+o LANG-1297: Add SystemUtils.getHostName() API.
+o LANG-1301: Moving apache-rat-plugin configuration into pluginManagement.
+ Thanks to Karl Heinz Marbaise.
+o LANG-1316: Deprecate classes/methods moved to commons-text.
+
+=============================================================================
+
+ Release Notes for version 3.5
+
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o Added Java 9 detection to org.apache.commons.lang3.SystemUtils.
+o Support for shifting and swapping elements in
+ org.apache.commons.lang3.ArrayUtils.
+o New methods for generating random strings from different character classes
+ including alphabetic, alpha-numeric and ASCII added to
+ org.apache.commons.lang3.RandomStringUtils.
+o Numerous extensions to org.apache.commons.lang3.StringUtils including
+ null safe compare variants, more remove and replace variants, rotation and
+ truncation.
+o Added org.apache.commons.lang3.ThreadUtils - a utility class to work with
+ instances of java.lang.Thread and java.lang.ThreadGroup.
+o Added annotations @EqualsExclude, @HashCodeExclude and @ToStringExclude to
+ mark fields which should be ignored by the reflective builders in the
+ org.apache.commons.lang3.builder package.
+o Support for various modify and retrieve value use cases added to the classes
+ in org.apache.commons.lang3.mutable.
+
+COMPATIBILITY
+=============
+
+Apache Commons Lang 3.5 is binary compatible with the 3.4 release. Users
+should not experience any problems when upgrading from 3.4 to 3.5.
+
+There has been an addition to the org.apache.commons.lang3.time.DatePrinter
+interface:
+
+o Added method 'public boolean parse(java.lang.String, java.text.ParsePosition,
+ java.util.Calendar)'
+o Added method 'public java.lang.Appendable format(long, java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Date,
+ java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Calendar,
+ java.lang.Appendable)'
+
+For this reason 3.5 is not strictly source compatible to 3.4. Since the
+DatePrinter interface is not meant to be implemented by clients, this
+change it not considered to cause any problems.
+
+JAVA 9 SUPPORT
+==============
+
+Java 9 introduces a new version-string scheme. Details of this new scheme are
+documented in JEP-223 (https://openjdk.org/jeps/223). In order to support
+JEP-223 two classes had to be changed:
+
+o org.apache.commons.lang3.JavaVersion
+ deprecated enum constant JAVA_1_9
+ introduced enum constant JAVA_9
+
+o org.apache.commons.lang3.SystemUtils
+ deprecated constant IS_JAVA_1_9
+ introduced constant IS_JAVA_9
+
+For more information see LANG-1197
+(https://issues.apache.org/jira/browse/LANG-1197). All other APIs are expected
+to work with Java 9.
+
+BUILDING ON JAVA 9
+==================
+
+Java 8 introduced the Unicode Consortium's Common Locale Data Repository as
+alternative source for locale data. Java 9 will use the CLDR provider as
+default provider for locale data (see https://openjdk.org/jeps/252). This
+causes an number of locale-sensitive test in Commons Lang to fail. In order
+to build Commons Lang 3.5 on Java 9, the locale provider has to be set to
+'JRE':
+
+ mvn -Djava.locale.providers=JRE clean install
+
+We are currently investigating ways to support building on Java 9 without
+further configuration. For more information see:
+https://issues.apache.org/jira/browse/LANG-1265
+
+
+NEW FEATURES
+==============
+
+o LANG-1275: Added a tryAcquire() method to TimedSemaphore.
+o LANG-1255: Add DateUtils.toCalendar(Date, TimeZone). Thanks to Kaiyuan Wang.
+o LANG-1023: Add WordUtils.wrap overload with customizable breakable character.
+ Thanks to Marko Bekhta.
+o LANG-787: Add method removeIgnoreCase(String, String) to StringUtils. Thanks
+ to Gokul Nanthakumar C.
+o LANG-1224: Extend RandomStringUtils with methods that generate strings
+ between a min and max length. Thanks to Caleb Cushing.
+o LANG-1257: Add APIs StringUtils.wrapIfMissing(String, char|String). Thanks to
+ Gary Gregory.
+o LANG-1253: Add RandomUtils#nextBoolean() method. Thanks to adilek.
+o LANG-1085: Add a circuit breaker implementation. Thanks to Oliver Heger and
+ Bruno P. Kinoshita.
+o LANG-1013: Add StringUtils.truncate(). Thanks to Thiago Andrade.
+o LANG-1195: Enhance MethodUtils to allow invocation of private methods. Thanks
+ to Derek C. Ashmore.
+o LANG-1189: Add getAndIncrement/getAndDecrement/getAndAdd/incrementAndGet/
+ decrementAndGet/addAndGet in Mutable* classes. Thanks to
+ Haiyang Li and Matthew Bartenschlag.
+o LANG-1225: Add RandomStringUtils#randomGraph and #randomPrint which match
+ corresponding regular expression class. Thanks to Caleb Cushing.
+o LANG-1223: Add StopWatch#getTime(TimeUnit). Thanks to Nick Manley.
+o LANG-781: Add methods to ObjectUtils class to check for null elements in the
+ array. Thanks to Krzysztof Wolny.
+o LANG-1228: Prefer Throwable.getCause() in ExceptionUtils.getCause().
+ Thanks to Brad Hess.
+o LANG-1233: DiffBuilder add method to allow appending from a DiffResult.
+ Thanks to Nick Manley.
+o LANG-1168: Add SystemUtils.IS_OS_WINDOWS_10 property.
+ Thanks to Pascal Schumacher.
+o LANG-1115: Add support for varargs in ConstructorUtils, MemberUtils, and
+ MethodUtils. Thanks to Jim Lloyd and Joe Ferner.
+o LANG-1134: Add methods to check numbers against NaN and infinite to
+ Validate. Thanks to Alan Smithee.
+o LANG-1220: Add tests for missed branches in DateUtils.
+ Thanks to Casey Scarborough.
+o LANG-1146: z/OS identification in SystemUtils.
+ Thanks to Gabor Liptak.
+o LANG-1192: FastDateFormat support of the week-year component (uppercase 'Y').
+ Thanks to Dominik Stadler.
+o LANG-1169: Add StringUtils methods to compare a string to multiple strings.
+ Thanks to Rafal Glowinski, Robert Parr and Arman Sharif.
+o LANG-1185: Add remove by regular expression methods in StringUtils.
+o LANG-1139: Add replace by regular expression methods in StringUtils.
+o LANG-1171: Add compare methods in StringUtils.
+o LANG-1174: Add sugar to RandomUtils. Thanks to Punkratz312.
+o LANG-1154: FastDateFormat APIs that use a StringBuilder. Thanks to
+ Gary Gregory.
+o LANG-1149: Ability to throw checked exceptions without declaring them. Thanks
+ to Gregory Zak.
+o LANG-1153: Implement ParsePosition api for FastDateParser.
+o LANG-1137: Add check for duplicate event listener in EventListenerSupport.
+ Thanks to Matthew Aguirre.
+o LANG-1135: Add method containsAllWords to WordUtils. Thanks to
+ Eduardo Martins.
+o LANG-1132: ReflectionToStringBuilder doesn't throw IllegalArgumentException
+ when the constructor's object param is null. Thanks to Jack Tan.
+o LANG-701: StringUtils join with var args. Thanks to James Sawle.
+o LANG-1105: Add ThreadUtils - A utility class which provides helper methods
+ related to java.lang.Thread Issue: LANG-1105. Thanks to
+ Hendrik Saly.
+o LANG-1031: Add annotations to exclude fields from ReflectionEqualsBuilder,
+ ReflectionToStringBuilder and ReflectionHashCodeBuilder. Thanks
+ to Felipe Adorno.
+o LANG-1127: Use JUnit rules to set and reset the default Locale and TimeZone.
+o LANG-1119: Add rotate(string, int) method to StringUtils. Thanks to
+ Loic Guibert.
+o LANG-1099: Add swap and shift operations for arrays to ArrayUtils. Thanks to
+ Adrian Ber.
+o LANG-1050: Change nullToEmpty methods to generics. Thanks to James Sawle.
+o LANG-1074: Add a method to ArrayUtils for removing all occurrences of a given
+ element Issue: LANG-1074. Thanks to Haiyang Li.
+
+FIXED BUGS
+============
+
+o LANG-1261: ArrayUtils.contains returns false for instances of subtypes.
+o LANG-1252: Rename NumberUtils.isNumber, isCreatable to better reflect
+ createNumber. Also, accommodated for "+" symbol as prefix in
+ isCreatable and isNumber. Thanks to Rob Tompkins.
+o LANG-1230: Remove unnecessary synchronization from registry lookup in
+ EqualsBuilder and HashCodeBuilder. Thanks to Philippe Marschall.
+o LANG-1214: Handle "void" in ClassUtils.getClass(). Thanks to Henry Tung.
+o LANG-1250: SerializationUtils#deserialize has unnecessary code and a comment
+ for that. Thanks to Glease Wang.
+o LANG-1190: TypeUtils.isAssignable throws NullPointerException when fromType
+ has type variables and toType generic superclass specifies type
+ variable. Thanks to Pascal Schumacher.
+o LANG-1226: StringUtils#normalizeSpace does not trim the string anymore.
+ Thanks to Pascal Schumacher.
+o LANG-1251: SerializationUtils.ClassLoaderAwareObjectInputStream should use
+ static initializer to initialize primitiveTypes map. Thanks to
+ Takuya Ueshin.
+o LANG-1248: FastDatePrinter Memory allocation regression. Thanks to
+ Benoit Wiart.
+o LANG-1018: Fix precision loss on NumberUtils.createNumber(String). Thanks to
+ Nick Manley.
+o LANG-1199: Fix implementation of StringUtils.getJaroWinklerDistance(). Thanks
+ to M. Steiger.
+o LANG-1244: Fix dead links in StringUtils.getLevenshteinDistance() javadoc.
+ Thanks to jjbankert.
+o LANG-1242: "\u2284":"?" mapping missing from
+ EntityArrays#HTML40_EXTENDED_ESCAPE. Thanks to Neal Stewart.
+o LANG-901: StringUtils#startsWithAny/endsWithAny is case sensitive -
+ documented as case insensitive. Thanks to Matthew Bartenschlag.
+o LANG-1232: DiffBuilder: Add null check on fieldName when appending Object or
+ Object[]. Thanks to Nick Manley.
+o LANG-1178: ArrayUtils.removeAll(Object array, int... indices) should do the
+ clone, not its callers. Thanks to Henri Yandell.
+o LANG-1120: StringUtils.stripAccents should remove accents from "Ł" and "ł".
+ Thanks to kaching88.
+o LANG-1205: NumberUtils.createNumber() behaves inconsistently with
+ NumberUtils.isNumber(). Thanks to pbrose.
+o LANG-1222: Fix for incorrect comment on StringUtils.containsIgnoreCase
+ method. Thanks to Adam J.
+o LANG-1221: Fix typo on appendIfMissing javadoc. Thanks to Pierre Templier.
+o LANG-1202: parseDateStrictly doesn't pass specified locale. Thanks to
+ Markus Jelsma.
+o LANG-1219: FastDateFormat doesn't respect summer daylight in some localized
+ strings. Thanks to Jarek.
+o LANG-1175: Remove Ant-based build.
+o LANG-1194: Limit max heap memory for consistent Travis CI build.
+o LANG-1186: Fix NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to NickManley.
+o LANG-1193: ordinalIndexOf("abc", "ab", 1) gives incorrect answer of -1
+ (correct answer should be 0); revert fix for LANG-1077. Thanks to
+ Qin Li.
+o LANG-1002: Several predefined ISO FastDateFormats in DateFormatUtils are
+ incorrect. Thanks to Michael Osipov.
+o LANG-1152: StringIndexOutOfBoundsException or field over-write for large year
+ fields in FastDateParser. Thanks to Pas Filip.
+o LANG-1141: StrLookup.systemPropertiesLookup() no longer reacts on changes on
+ system properties.
+o LANG-1147: EnumUtils *BitVector issue with more than 32 values Enum. Thanks
+ to Loic Guibert.
+o LANG-1059: Capitalize javadoc is incorrect. Thanks to Colin Casey.
+o LANG-1122: Inconsistent behavior of swap for malformed inputs. Thanks to
+ Adrian Ber.
+o LANG-1130: Fix critical issues reported by SonarQube.
+o LANG-1131: StrBuilder.equals(StrBuilder) doesn't check for null inputs.
+o LANG-1128: JsonToStringStyle doesn't handle chars and objects correctly.
+ Thanks to Jack Tan.
+o LANG-1126: DateFormatUtilsTest.testSMTP depends on the default Locale.
+o LANG-1123: Unit test FastDatePrinterTimeZonesTest needs a timezone set.
+ Thanks to Christian P. Momon.
+o LANG-916: DateFormatUtils.format does not correctly change Calendar
+ TimeZone in certain situations. Thanks to Christian P. Momon.
+o LANG-1116: DateUtilsTest.testLang530 fails for some timezones. Thanks to
+ Aaron Sheldon.
+o LANG-1114: TypeUtils.ParameterizedType#equals doesn't work with wildcard
+ types. Thanks to Andy Coates.
+o LANG-1118: StringUtils.repeat('z', -1) throws NegativeArraySizeException.
+ Thanks to Loic Guibert.
+o LANG-1111: Fix FindBugs warnings in DurationFormatUtils.
+o LANG-1162: StringUtils#equals fails with Index OOBE on non-Strings with
+ identical leading prefix..
+o LANG-1163: There are no tests for CharSequenceUtils.regionMatches.
+o LANG-1200: Fix Javadoc of StringUtils.ordinalIndexOf. Thanks to BarkZhang.
+o LANG-1191: Incorrect Javadoc
+ StringUtils.containsAny(CharSequence, CharSequence...). Thanks to
+ qed, Brent Worden and Gary Gregory.
+
+CHANGES
+=========
+o LANG-1197: Prepare Java 9 detection.
+o LANG-1262: CompareToBuilder.append(Object, Object, Comparator) method is too
+ big to be inlined. Thanks to Ruslan Cheremin.
+o LANG-1259: Javadoc for ArrayUtils.isNotEmpty() is slightly misleading. Thanks
+ to Dominik Stadler.
+o LANG-1247: FastDatePrinter generates extra Date objects. Thanks to
+ Benoit Wiart.
+o LANG-1229: HashCodeBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1243: Simplify ArrayUtils removeElements by using new decrementAndGet()
+ method.
+o LANG-1240: Optimize BitField constructor implementation. Thanks to zhanhb.
+o LANG-1206: Improve CharSetUtils.squeeze() performance. Thanks to
+ Mohammed Alfallaj.
+o LANG-1176: Improve ArrayUtils removeElements time complexity to O(n). Thanks
+ to Jeffery Yuan.
+o LANG-1234: getLevenshteinDistance with a threshold: optimize implementation
+ if the strings lengths differ more than the threshold. Thanks to
+ Jonatan JĂśnsson.
+o LANG-1151: Performance improvements for NumberUtils.isParsable. Thanks to
+ Juan Pablo Santos RodrĂ­guez.
+o LANG-1218: EqualsBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1210: StringUtils#startsWithAny has error in Javadoc. Thanks to
+ Matthias Niehoff.
+o LANG-1208: StrSubstitutor can preserve escapes. Thanks to Samuel Karp.
+o LANG-1182: Clarify Javadoc of StringUtils.containsAny(). Thanks to
+ Larry West and Pascal Schumacher.
+o LANG-1183: Making replacePattern/removePattern methods null safe in
+ StringUtils.
+o LANG-1057: Replace StringBuilder with String concatenation for better
+ optimization. Thanks to OtĂĄvio Santana.
+o LANG-1075: Deprecate SystemUtils.FILE_SEPARATOR and
+ SystemUtils.PATH_SEPARATOR.
+o LANG-979: TypeUtils.parameterizeWithOwner - wrong format descriptor for
+ "invalid number of type parameters". Thanks to Bruno P. Kinoshita.
+o LANG-1112: MultilineRecursiveToStringStyle largely unusable due to being
+ package-private.
+o LANG-1058: StringUtils.uncapitalize performance improvement. Thanks to
+ Leo Wang.
+o LANG-1069: CharSet.getInstance documentation does not clearly explain how
+ to include negation character in set. Thanks to Arno Noordover.
+o LANG-1107: Fix parsing edge cases in FastDateParser.
+o LANG-1273: Added new property IS_OS_MAC_OSX_EL_CAPITAN in SystemUtils. Thanks
+ to Jake Wang.
+
+=============================================================================
+
+ Release Notes for version 3.4
+
+
+COMPATIBILITY
+=============
+
+Commons Lang 3.4 is fully binary compatible to the last release and can
+therefore be used as a drop in replacement for 3.3.2. Note that the value of
+org.apache.commons.lang3.time.DurationFormatUtils.ISO_EXTENDED_FORMAT_PATTERN
+has changed, which may affect clients using the constant. Furthermore the
+constant is used internally in
+o DurationFormatUtils.formatDurationISO(long)
+o DurationFormatUtils.formatPeriodISO(long, long)
+
+For more information see https://issues.apache.org/jira/browse/LANG-1000.
+
+NEW FEATURES
+==============
+
+o LANG-821: Support OS X versions in SystemUtils. Thanks to Timo Kockert.
+o LANG-1103: Add SystemUtils.IS_JAVA_1_9
+o LANG-1093: Add ClassUtils.getAbbreviatedName(). Thanks to Fabian Lange.
+o LANG-1082: Add option to disable the "objectsTriviallyEqual" test in
+ DiffBuilder. Thanks to Jonathan Baker.
+o LANG-1015: Add JsonToStringStyle implementation to ToStringStyle. Thanks to
+ Thiago Andrade.
+o LANG-1080: Add NoClassNameToStringStyle implementation of ToStringStyle.
+ Thanks to Innokenty Shuvalov.
+o LANG-883: Add StringUtils.containsAny(CharSequence, CharSequence...) method.
+ Thanks to Daniel Stewart.
+o LANG-1052: Multiline recursive to string style. Thanks to Jan Matèrne.
+o LANG-536: Add isSorted() to ArrayUtils. Thanks to James Sawle.
+o LANG-1033: Add StringUtils.countMatches(CharSequence, char)
+o LANG-1021: Provide methods to retrieve all fields/methods annotated with a
+ specific type. Thanks to Alexander MĂźller.
+o LANG-1016: NumberUtils#isParsable method(s). Thanks to
+ Juan Pablo Santos RodrĂ­guez.
+o LANG-999: Add fuzzy String matching logic to StringUtils. Thanks to
+ Ben Ripkens.
+o LANG-994: Add zero copy read method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-993: Add zero copy write method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-1044: Add method MethodUtils.invokeExactMethod(Object, String)
+o LANG-1045: Add method MethodUtils.invokeMethod(Object, String)
+
+FIXED BUGS
+============
+
+o LANG-794: SystemUtils.IS_OS_WINDOWS_2008, VISTA are incorrect. Thanks to
+ Timo Kockert.
+o LANG-1104: Parse test fails for TimeZone America/Sao_Paulo
+o LANG-948: Exception while using ExtendedMessageFormat and escaping braces.
+ Thanks to Andrey Khobnya.
+o LANG-1092: Wrong formatting of time zones with daylight saving time in
+ FastDatePrinter
+o LANG-1090: FastDateParser does not set error indication in ParsePosition
+o LANG-1089: FastDateParser does not handle excess hours as per
+ SimpleDateFormat
+o LANG-1061: FastDateParser error - timezones not handled correctly. Thanks to
+ dmeneses.
+o LANG-1087: NumberUtils#createNumber() returns positive BigDecimal when
+ negative Float is expected. Thanks to Renat Zhilkibaev.
+o LANG-1081: DiffBuilder.append(String, Object left, Object right) does not do
+ a left.equals(right) check. Thanks to Jonathan Baker.
+o LANG-1055: StrSubstitutor.replaceSystemProperties does not work consistently.
+ Thanks to Jonathan Baker.
+o LANG-1083: Add (T) casts to get unit tests to pass in old JDK. Thanks to
+ Jonathan Baker.
+o LANG-1073: Read wrong component type of array in add in ArrayUtils.
+ Thanks to haiyang li.
+o LANG-1077: StringUtils.ordinalIndexOf("aaaaaa", "aa", 2) != 3 in StringUtils.
+ Thanks to haiyang li.
+o LANG-1072: Duplicated "0x" check in createBigInteger in NumberUtils. Thanks
+ to haiyang li.
+o LANG-1064: StringUtils.abbreviate description doesn't agree with the
+ examples. Thanks to B.J. Herbison.
+o LANG-1041: Fix MethodUtilsTest so it does not depend on JDK method ordering.
+ Thanks to Alexandre Bartel.
+o LANG-1000: ParseException when trying to parse UTC dates with Z as zone
+ designator using DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT
+o LANG-1035: Javadoc for EqualsBuilder.reflectionEquals() is unclear
+o LANG-1001: ISO 8601 misspelled throughout the Javadocs. Thanks to
+ Michael Osipov.
+o LANG-1088: FastDateParser should be case insensitive
+o LANG-995: Fix bug with stripping spaces on last line in WordUtils.wrap().
+ Thanks to Andrey Khobnya.
+
+CHANGES
+=========
+
+o LANG-1102: Make logic for comparing OS versions in SystemUtils smarter
+o LANG-1091: Shutdown thread pools in test cases. Thanks to Fabian Lange.
+o LANG-1101: FastDateParser and FastDatePrinter support 'X' format
+o LANG-1100: Avoid memory allocation when using date formatting to StringBuffer.
+ Thanks to mbracher.
+o LANG-935: Possible performance improvement on string escape functions.
+ Thanks to Fabian Lange, Thomas Neidhart.
+o LANG-1098: Avoid String allocation in StrBuilder.append(CharSequence). Thanks
+ to Mikhail Mazurskiy, Fabian Lange.
+o LANG-1098: Update maven-checkstyle-plugin to 2.14. Thanks to Micha? Kordas.
+o LANG-1097: Update org.easymock:easymock to 3.3.1. Thanks to Micha? Kordas.
+o LANG-1096: Update maven-pmd-plugin to 3.4. Thanks to Micha? Kordas.
+o LANG-1095: Update maven-antrun-plugin to 1.8. Thanks to Micha? Kordas.
+o LANG-877: Performance improvements for StringEscapeUtils. Thanks to
+ Fabian Lange.
+o LANG-1071: Fix wrong examples in Javadoc of
+ StringUtils.replaceEachRepeatedly(...),
+ StringUtils.replaceEach(...) Thanks to Arno Noordover.
+o LANG-827: CompareToBuilder's doc doesn't specify precedence of fields it
+ uses in performing comparisons
+o LANG-1020: Improve performance of normalize space. Thanks to Libor Ondrusek.
+o LANG-1027: org.apache.commons.lang3.SystemUtils#isJavaVersionAtLeast should
+ return true by default
+o LANG-1026: Bring static method references in StringUtils to consistent style.
+ Thanks to Alex Yursha.
+o LANG-1017: Use non-ASCII digits in Javadoc examples for
+ StringUtils.isNumeric. Thanks to Christoph Schneegans.
+o LANG-1008: Change min/max methods in NumberUtils/IEEE754rUtils from array
+ input parameters to varargs. Thanks to Thiago Andrade.
+o LANG-1006: Add wrap (with String or char) to StringUtils. Thanks to
+ Thiago Andrade.
+o LANG-1005: Extend DurationFormatUtils#formatDurationISO default pattern to
+ match #formatDurationHMS. Thanks to Michael Osipov.
+o LANG-1007: Fixing NumberUtils JAVADoc comments for max methods. Thanks to
+ Thiago Andrade.
+o LANG-731: Better Javadoc for BitField class
+o LANG-1004: DurationFormatUtils#formatDurationHMS implementation does not
+ correspond to Javadoc and vice versa. Thanks to Michael Osipov.
+o LANG-1003: DurationFormatUtils are not able to handle negative
+ durations/periods
+o LANG-998: Javadoc is not clear on preferred pattern to instantiate
+ FastDateParser / FastDatePrinter
+
+=============================================================================
+
+ Release Notes for version 3.3.2
+
+NEW FEATURES
+==============
+
+o LANG-989: Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8
+
+FIXED BUGS
+============
+
+o LANG-992: NumberUtils#isNumber() returns false for "0.0", "0.4790", et al
+
+=============================================================================
+
+ Release Notes for version 3.3.1
+
+FIXED BUGS
+============
+
+o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong
+ days
+o LANG-983: DurationFormatUtils does not describe format string fully
+o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote char
+o LANG-984: DurationFormatUtils does not handle large durations correctly
+o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field
+ size should be 4 digits
+o LANG-978: Failing tests with Java 8 b128
+
+=============================================================================
+
+ Release Notes for version 3.3
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian GĂśtz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio FernĂĄndez.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+=============================================================================
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+=============================================================================
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+=============================================================================
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+=============================================================================
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12 hour clock and not
+ 24 hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.8.1.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.8.1.txt
new file mode 100644
index 000000000..c11adfcf3
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.8.1.txt
@@ -0,0 +1,1270 @@
+
+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.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.8.1
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.8.1 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 7.0, making use of features that arrived with Java 7.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+This release is a bugfix for Restoring Bundle-SymbolicName in the MANIFEST.mf file.
+
+Changes in this version include:
+
+
+Fixed Bugs:
+o LANG-1419: Restore BundleSymbolicName for OSGi
+
+
+
+Historical list of changes: https://commons.apache.org/proper/commons-lang/changes-report.html
+
+For complete information on Apache Commons Lang, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Lang website:
+
+https://commons.apache.org/proper/commons-lang/
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.8
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.8 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 5.0, making use of features that arrived with Java 5.0 such as generics,
+variable arguments, autoboxing, concurrency and formatted output.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.
+
+Changes in this version include:
+
+New features:
+o LANG-1352: EnumUtils.getEnumIgnoreCase and isValidEnumIgnoreCase methods added Thanks to Ruslan Sibgatullin.
+o LANG-1372: Add ToStringSummary annotation Thanks to Sérgio Ozaki.
+o LANG-1356: Add bypass option for classes to recursive and reflective EqualsBuilder Thanks to Yathos UG.
+o LANG-1391: Improve Javadoc for StringUtils.isAnyEmpty(null) Thanks to Sauro Matulli, Oleg Chubaryov.
+o LANG-1393: Add API SystemUtils.String getEnvironmentVariable(final String name, final String defaultValue) Thanks to Gary Gregory.
+o LANG-1394: org.apache.commons.lang3.SystemUtils should not write to System.err. Thanks to Sebb, Gary Gregory.
+o LANG-1238: Add RegexUtils class instead of overloading methods in StringUtils that take a regex to take precompiled Pattern. Thanks to Christopher Cordeiro, Gary Gregory, Bruno P. Kinoshita, Oleg Chubaryov.
+o LANG-1390: StringUtils.join() with support for List<?> with configurable start/end indices. Thanks to Jochen Schalanda.
+o LANG-1392: Methods for getting first non empty or non blank value Thanks to Jeff Nelson.
+o LANG-1408: Rounding utilities for converting to BigDecimal
+
+Fixed Bugs:
+o LANG-1380: FastDateParser too strict on abbreviated short month symbols Thanks to Markus Jelsma.
+o LANG-1396: JsonToStringStyle does not escape string names
+o LANG-1395: JsonToStringStyle does not escape double quote in a string value Thanks to Jim Gan.
+o LANG-1384: New Java version ("11") must be handled Thanks to Ian Young.
+o LANG-1364: ExceptionUtils#getRootCause(Throwable t) should return t if no lower level cause exists Thanks to Zheng Xie.
+o LANG-1060: NumberUtils.isNumber assumes number starting with Zero Thanks to Piotr Kosmala.
+o LANG-1375: defaultString(final String str) in StringUtils to reuse defaultString(final String str, final String defaultStr) Thanks to Jerry Zhao.
+o LANG-1374: Parsing Json Array failed Thanks to Jaswanth Bala.
+o LANG-1371: Fix TypeUtils#parameterize to work correctly with narrower-typed array Thanks to Dmitry Ovchinnikov.
+o LANG-1370: Fix EventCountCircuitBreaker increment batch Thanks to Andre Dieb.
+o LANG-1385: NumberUtils.createNumber() throws StringIndexOutOfBoundsException instead of NumberFormatException Thanks to Rohan Padhye.
+o LANG-1397: WordUtils.wrap throws StringIndexOutOfBoundsException when wrapLength is Integer.MAX_VALUE. Thanks to Takanobu Asanuma.
+o LANG-1401: Typo in JavaDoc for lastIndexOf Thanks to Roman Golyshev, Alex Mamedov.
+
+Changes:
+o LANG-1367: ObjectUtils.identityToString(Object) and friends should allocate builders and buffers with a size Thanks to Gary Gregory.
+o LANG-1405: Remove checks for java versions below the minimum supported one Thanks to Lars Grefer.
+o LANG-1402: Null/index safe get methods for ArrayUtils Thanks to Mark Dacek.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.7
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.7 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 5.0, making use of features that arrived with Java 5.0 such as generics,
+variable arguments, autoboxing, concurrency and formatted output.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.
+
+Changes in this version include:
+
+New features:
+o LANG-1355: TimeZone.getTimeZone() in FastDateParser causes resource contention (PR #296.) Thanks to Chas Honton.
+o LANG-1360: Add methods to ObjectUtils to get various forms of class names in a null-safe manner Thanks to Gary Gregory.
+
+Fixed Bugs:
+o LANG-1362: Fix tests DateUtilsTest for Java 9 with en_GB locale Thanks to Stephen Colebourne.
+o LANG-1365: Fix NullPointerException in isJavaVersionAtLeast on Java 10, add SystemUtils.IS_JAVA_10, add JavaVersion.JAVA_10 Thanks to Gary Gregory.
+o LANG-1348: StackOverflowError on TypeUtils.toString(...) for a generic return type of Enum.valueOf Thanks to mbusso.
+o LANG-1350: ConstructorUtils.invokeConstructor(Class, Object...) regression Thanks to Brett Kail.
+o LANG-1349: EqualsBuilder#isRegistered: swappedPair construction bug Thanks to Naman Nigam.
+o LANG-1357: org.apache.commons.lang3.time.FastDateParser should use toUpperCase(Locale) Thanks to BruceKuiLiu.
+
+Changes:
+o LANG-1358: Improve StringUtils#replace throughput Thanks to Stephane Landelle.
+o LANG-1346: Remove deprecation from RandomStringUtils
+o LANG-1361: ExceptionUtils.getThrowableList() is using deprecated ExceptionUtils.getCause() Thanks to Ana.
+
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.6
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.6 version of
+Apache Commons Lang as well as a history all changes in the Commons Lang 3.x
+release line. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.6 at
+least requires Java 7.0. Note that this has changed from Commons Lang 3.5, which
+only required Java 1.6.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o The class org.apache.commons.lang3.concurrent.Memoizer is an implementation
+ of the Memoizer pattern as shown in
+ Goetz, Brian et al. (2006) - Java Concurrency in Practice, p. 108.
+o The class org.apache.commons.lang3.ArchUtils has been added. ArchUtils is
+ a utility class for the "os.arch" system property.
+
+DEPRECATIONS
+============
+
+The Apache Commons Community has recently set up the Commons Text component
+as a home for algorithms working on strings. For this reason most of the string
+focused functionality in Commons Lang has been deprecated and moved to
+Commons Text. This includes:
+
+o All classes in the org.apache.commons.lang3.text and the
+ org.apache.commons.lang3.text.translate packages
+o org.apache.commons.lang3.StringEscapeUtils
+o org.apache.commons.lang3.RandomStringUtils
+o The methods org.apache.commons.lang3.StringUtils.getJaroWinklerDistance and
+ org.apache.commons.lang3.StringUtils.getLevenshteinDistance
+
+For more information see the Commons Text website:
+
+ https://commons.apache.org/text
+
+The class org.apache.commons.lang3.CharEncoding has been deprecated in favor of
+java.nio.charset.StandardCharsets.
+
+The following methods have been deprecated in
+org.apache.commons.lang3.ArrayUtils in favor of the corresponding insert
+methods. Note that the handling for null inputs differs between add and insert.
+
+o add(boolean[], int, boolean) -> insert(int, boolean[], boolean...)
+o add(byte[], int, boolean) -> insert(int, byte[], byte...)
+o add(char[], int, boolean) -> insert(int, char[], char...)
+o add(double[], int, boolean) -> insert(int, double[], double...)
+o add(float[], int, boolean) -> insert(int, float[], float...)
+o add(int[], int, boolean) -> insert(int, int[], int...)
+o add(long[], int, boolean) -> insert(int, long[], long...)
+o add(short[], int, boolean) -> insert(int, short[], short...)
+o add(T[], int, boolean) -> insert(int, T[], T...)
+
+
+COMPATIBILITY WITH JAVA 9
+==================
+
+The MANIFEST.MF now contains an additional entry:
+
+ Automatic-Module-Name: org.apache.commons.lang3
+
+This should make it possible to use Commons Lang 3.6 as a module in the Java 9
+module system. For more information see the corresponding issue and the
+referenced mailing list discussions:
+
+ https://issues.apache.org/jira/browse/LANG-1338
+
+The build problems present in the 3.5 release have been resolved. Building
+Commons Lang 3.6 should work out of the box with the latest Java 9 EA build.
+Please report any Java 9 related issues at:
+
+ https://issues.apache.org/jira/browse/LANG
+
+NEW FEATURES
+============
+
+o LANG-1336: Add NUL Byte To CharUtils. Thanks to Beluga Behr.
+o LANG-1304: Add method in StringUtils to determine if string contains both
+ mixed cased characters. Thanks to Andy Klimczak.
+o LANG-1325: Increase test coverage of ToStringBuilder class to 100%.
+ Thanks to Arshad Basha.
+o LANG-1307: Add a method in StringUtils to extract only digits out of input
+ string. Thanks to Arshad Basha.
+o LANG-1256: Add JMH maven dependencies. Thanks to C0rWin.
+o LANG-1167: Add null filter to ReflectionToStringBuilder.
+ Thanks to Mark Dacek.
+o LANG-1299: Add method for converting string to an array of code points.
+o LANG-660: Add methods to insert arrays into arrays at an index.
+o LANG-1034: Add support for recursive comparison to
+ EqualsBuilder#reflectionEquals. Thanks to Yathos UG.
+o LANG-1067: Add a reflection-based variant of DiffBuilder.
+o LANG-740: Implementation of a Memoizer. Thanks to James Sawle.
+o LANG-1258: Add ArrayUtils#toStringArray method.
+ Thanks to IG, Grzegorz Ro?niecki.
+o LANG-1160: StringUtils#abbreviate should support 'custom ellipses' parameter.
+o LANG-1293: Add StringUtils#isAllEmpty and #isAllBlank methods.
+ Thanks to Pierre Templier, Martin Tarjanyi.
+o LANG-1313: Add ArchUtils - An utility class for the "os.arch" system property.
+ Thanks to Tomschi.
+o LANG-1272: Add shuffle methods to ArrayUtils.
+o LANG-1317: Add MethodUtils#findAnnotation and extend
+ MethodUtils#getMethodsWithAnnotation for non-public, super-class
+ and interface methods. Thanks to Yasser Zamani.
+o LANG-1331: Add ImmutablePair.nullPair().
+o LANG-1332: Add ImmutableTriple.nullTriple().
+
+FIXED BUGS
+==========
+
+o LANG-1337: Fix test failures in IBM JDK 8 for ToStringBuilderTest.
+o LANG-1319: MultilineRecursiveToStringStyle StackOverflowError when object is
+ an array.
+o LANG-1320: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code followed by variant.
+o LANG-1300: Clarify or improve behavior of int-based indexOf methods in
+ StringUtils. Thanks to Mark Dacek.
+o LANG-1286: RandomStringUtils random method can overflow and return characters
+ outside of specified range.
+o LANG-1292: WordUtils.wrap throws StringIndexOutOfBoundsException.
+o LANG-1287: RandomStringUtils#random can enter infinite loop if end parameter
+ is to small. Thanks to Ivan Morozov.
+o LANG-1285: NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to Francesco Chicchiriccň.
+o LANG-1281: Javadoc of StringUtils.ordinalIndexOf is contradictory.
+ Thanks to Andreas Lundblad.
+o LANG-1188: StringUtils#join(T...): warning: [unchecked] Possible heap
+ pollution from parameterized vararg type T.
+o LANG-1144: Multiple calls of
+ org.apache.commons.lang3.concurrent.LazyInitializer.initialize()
+ are possible. Thanks to Waldemar Maier, Gary Gregory.
+o LANG-1276: StrBuilder#replaceAll ArrayIndexOutOfBoundsException.
+ Thanks to Andy Klimczak.
+o LANG-1278: BooleanUtils javadoc issues. Thanks to Duke Yin.
+o LANG-1070: ArrayUtils#add confusing example in javadoc.
+ Thanks to Paul Pogonyshev.
+o LANG-1271: StringUtils#isAnyEmpty and #isAnyBlank should return false for an
+ empty array. Thanks to Pierre Templier.
+o LANG-1155: Add StringUtils#unwrap. Thanks to Saif Asif, Thiago Andrade.
+o LANG-1311: TypeUtils.toString() doesn't handle primitive and Object arrays
+ correctly. Thanks to Aaron Digulla.
+o LANG-1312: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code.
+o LANG-1265: Build failures when building with Java 9 EA.
+o LANG-1314: javadoc creation broken with Java 8. Thanks to Allon Murienik.
+o LANG-1310: MethodUtils.invokeMethod throws ArrayStoreException if using
+ varargs arguments and smaller types than the method defines.
+ Thanks to Don Jeba.
+
+CHANGES
+=======
+
+o LANG-1338: Add Automatic-Module-Name MANIFEST entry for Java 9
+ compatibility.
+o LANG-1334: Deprecate CharEncoding in favour of
+ java.nio.charset.StandardCharsets.
+o LANG-1110: Implement HashSetvBitSetTest using JMH.
+ Thanks to Bruno P. Kinoshita.
+o LANG-1290: Increase test coverage of org.apache.commons.lang3.ArrayUtils.
+ Thanks to Andrii Abramov.
+o LANG-1274: StrSubstitutor should state its thread safety.
+o LANG-1277: StringUtils#getLevenshteinDistance reduce memory consumption.
+ Thanks to yufcuy.
+o LANG-1279: Update Java requirement from Java 6 to 7.
+o LANG-1143: StringUtils should use toXxxxCase(int) rather than
+ toXxxxCase(char). Thanks to sebb.
+o LANG-1297: Add SystemUtils.getHostName() API.
+o LANG-1301: Moving apache-rat-plugin configuration into pluginManagement.
+ Thanks to Karl Heinz Marbaise.
+o LANG-1316: Deprecate classes/methods moved to commons-text.
+
+=============================================================================
+
+ Release Notes for version 3.5
+
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o Added Java 9 detection to org.apache.commons.lang3.SystemUtils.
+o Support for shifting and swapping elements in
+ org.apache.commons.lang3.ArrayUtils.
+o New methods for generating random strings from different character classes
+ including alphabetic, alpha-numeric and ASCII added to
+ org.apache.commons.lang3.RandomStringUtils.
+o Numerous extensions to org.apache.commons.lang3.StringUtils including
+ null safe compare variants, more remove and replace variants, rotation and
+ truncation.
+o Added org.apache.commons.lang3.ThreadUtils - a utility class to work with
+ instances of java.lang.Thread and java.lang.ThreadGroup.
+o Added annotations @EqualsExclude, @HashCodeExclude and @ToStringExclude to
+ mark fields which should be ignored by the reflective builders in the
+ org.apache.commons.lang3.builder package.
+o Support for various modify and retrieve value use cases added to the classes
+ in org.apache.commons.lang3.mutable.
+
+COMPATIBILITY
+=============
+
+Apache Commons Lang 3.5 is binary compatible with the 3.4 release. Users
+should not experience any problems when upgrading from 3.4 to 3.5.
+
+There has been an addition to the org.apache.commons.lang3.time.DatePrinter
+interface:
+
+o Added method 'public boolean parse(java.lang.String, java.text.ParsePosition,
+ java.util.Calendar)'
+o Added method 'public java.lang.Appendable format(long, java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Date,
+ java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Calendar,
+ java.lang.Appendable)'
+
+For this reason 3.5 is not strictly source compatible to 3.4. Since the
+DatePrinter interface is not meant to be implemented by clients, this
+change it not considered to cause any problems.
+
+JAVA 9 SUPPORT
+==============
+
+Java 9 introduces a new version-string scheme. Details of this new scheme are
+documented in JEP-223 (https://openjdk.org/jeps/223). In order to support
+JEP-223 two classes had to be changed:
+
+o org.apache.commons.lang3.JavaVersion
+ deprecated enum constant JAVA_1_9
+ introduced enum constant JAVA_9
+
+o org.apache.commons.lang3.SystemUtils
+ deprecated constant IS_JAVA_1_9
+ introduced constant IS_JAVA_9
+
+For more information see LANG-1197
+(https://issues.apache.org/jira/browse/LANG-1197). All other APIs are expected
+to work with Java 9.
+
+BUILDING ON JAVA 9
+==================
+
+Java 8 introduced the Unicode Consortium's Common Locale Data Repository as
+alternative source for locale data. Java 9 will use the CLDR provider as
+default provider for locale data (see https://openjdk.org/jeps/252). This
+causes an number of locale-sensitive test in Commons Lang to fail. In order
+to build Commons Lang 3.5 on Java 9, the locale provider has to be set to
+'JRE':
+
+ mvn -Djava.locale.providers=JRE clean install
+
+We are currently investigating ways to support building on Java 9 without
+further configuration. For more information see:
+https://issues.apache.org/jira/browse/LANG-1265
+
+
+NEW FEATURES
+==============
+
+o LANG-1275: Added a tryAcquire() method to TimedSemaphore.
+o LANG-1255: Add DateUtils.toCalendar(Date, TimeZone). Thanks to Kaiyuan Wang.
+o LANG-1023: Add WordUtils.wrap overload with customizable breakable character.
+ Thanks to Marko Bekhta.
+o LANG-787: Add method removeIgnoreCase(String, String) to StringUtils. Thanks
+ to Gokul Nanthakumar C.
+o LANG-1224: Extend RandomStringUtils with methods that generate strings
+ between a min and max length. Thanks to Caleb Cushing.
+o LANG-1257: Add APIs StringUtils.wrapIfMissing(String, char|String). Thanks to
+ Gary Gregory.
+o LANG-1253: Add RandomUtils#nextBoolean() method. Thanks to adilek.
+o LANG-1085: Add a circuit breaker implementation. Thanks to Oliver Heger and
+ Bruno P. Kinoshita.
+o LANG-1013: Add StringUtils.truncate(). Thanks to Thiago Andrade.
+o LANG-1195: Enhance MethodUtils to allow invocation of private methods. Thanks
+ to Derek C. Ashmore.
+o LANG-1189: Add getAndIncrement/getAndDecrement/getAndAdd/incrementAndGet/
+ decrementAndGet/addAndGet in Mutable* classes. Thanks to
+ Haiyang Li and Matthew Bartenschlag.
+o LANG-1225: Add RandomStringUtils#randomGraph and #randomPrint which match
+ corresponding regular expression class. Thanks to Caleb Cushing.
+o LANG-1223: Add StopWatch#getTime(TimeUnit). Thanks to Nick Manley.
+o LANG-781: Add methods to ObjectUtils class to check for null elements in the
+ array. Thanks to Krzysztof Wolny.
+o LANG-1228: Prefer Throwable.getCause() in ExceptionUtils.getCause().
+ Thanks to Brad Hess.
+o LANG-1233: DiffBuilder add method to allow appending from a DiffResult.
+ Thanks to Nick Manley.
+o LANG-1168: Add SystemUtils.IS_OS_WINDOWS_10 property.
+ Thanks to Pascal Schumacher.
+o LANG-1115: Add support for varargs in ConstructorUtils, MemberUtils, and
+ MethodUtils. Thanks to Jim Lloyd and Joe Ferner.
+o LANG-1134: Add methods to check numbers against NaN and infinite to
+ Validate. Thanks to Alan Smithee.
+o LANG-1220: Add tests for missed branches in DateUtils.
+ Thanks to Casey Scarborough.
+o LANG-1146: z/OS identification in SystemUtils.
+ Thanks to Gabor Liptak.
+o LANG-1192: FastDateFormat support of the week-year component (uppercase 'Y').
+ Thanks to Dominik Stadler.
+o LANG-1169: Add StringUtils methods to compare a string to multiple strings.
+ Thanks to Rafal Glowinski, Robert Parr and Arman Sharif.
+o LANG-1185: Add remove by regular expression methods in StringUtils.
+o LANG-1139: Add replace by regular expression methods in StringUtils.
+o LANG-1171: Add compare methods in StringUtils.
+o LANG-1174: Add sugar to RandomUtils. Thanks to Punkratz312.
+o LANG-1154: FastDateFormat APIs that use a StringBuilder. Thanks to
+ Gary Gregory.
+o LANG-1149: Ability to throw checked exceptions without declaring them. Thanks
+ to Gregory Zak.
+o LANG-1153: Implement ParsePosition api for FastDateParser.
+o LANG-1137: Add check for duplicate event listener in EventListenerSupport.
+ Thanks to Matthew Aguirre.
+o LANG-1135: Add method containsAllWords to WordUtils. Thanks to
+ Eduardo Martins.
+o LANG-1132: ReflectionToStringBuilder doesn't throw IllegalArgumentException
+ when the constructor's object param is null. Thanks to Jack Tan.
+o LANG-701: StringUtils join with var args. Thanks to James Sawle.
+o LANG-1105: Add ThreadUtils - A utility class which provides helper methods
+ related to java.lang.Thread Issue: LANG-1105. Thanks to
+ Hendrik Saly.
+o LANG-1031: Add annotations to exclude fields from ReflectionEqualsBuilder,
+ ReflectionToStringBuilder and ReflectionHashCodeBuilder. Thanks
+ to Felipe Adorno.
+o LANG-1127: Use JUnit rules to set and reset the default Locale and TimeZone.
+o LANG-1119: Add rotate(string, int) method to StringUtils. Thanks to
+ Loic Guibert.
+o LANG-1099: Add swap and shift operations for arrays to ArrayUtils. Thanks to
+ Adrian Ber.
+o LANG-1050: Change nullToEmpty methods to generics. Thanks to James Sawle.
+o LANG-1074: Add a method to ArrayUtils for removing all occurrences of a given
+ element Issue: LANG-1074. Thanks to Haiyang Li.
+
+FIXED BUGS
+============
+
+o LANG-1261: ArrayUtils.contains returns false for instances of subtypes.
+o LANG-1252: Rename NumberUtils.isNumber, isCreatable to better reflect
+ createNumber. Also, accommodated for "+" symbol as prefix in
+ isCreatable and isNumber. Thanks to Rob Tompkins.
+o LANG-1230: Remove unnecessary synchronization from registry lookup in
+ EqualsBuilder and HashCodeBuilder. Thanks to Philippe Marschall.
+o LANG-1214: Handle "void" in ClassUtils.getClass(). Thanks to Henry Tung.
+o LANG-1250: SerializationUtils#deserialize has unnecessary code and a comment
+ for that. Thanks to Glease Wang.
+o LANG-1190: TypeUtils.isAssignable throws NullPointerException when fromType
+ has type variables and toType generic superclass specifies type
+ variable. Thanks to Pascal Schumacher.
+o LANG-1226: StringUtils#normalizeSpace does not trim the string anymore.
+ Thanks to Pascal Schumacher.
+o LANG-1251: SerializationUtils.ClassLoaderAwareObjectInputStream should use
+ static initializer to initialize primitiveTypes map. Thanks to
+ Takuya Ueshin.
+o LANG-1248: FastDatePrinter Memory allocation regression. Thanks to
+ Benoit Wiart.
+o LANG-1018: Fix precision loss on NumberUtils.createNumber(String). Thanks to
+ Nick Manley.
+o LANG-1199: Fix implementation of StringUtils.getJaroWinklerDistance(). Thanks
+ to M. Steiger.
+o LANG-1244: Fix dead links in StringUtils.getLevenshteinDistance() javadoc.
+ Thanks to jjbankert.
+o LANG-1242: "\u2284":"?" mapping missing from
+ EntityArrays#HTML40_EXTENDED_ESCAPE. Thanks to Neal Stewart.
+o LANG-901: StringUtils#startsWithAny/endsWithAny is case sensitive -
+ documented as case insensitive. Thanks to Matthew Bartenschlag.
+o LANG-1232: DiffBuilder: Add null check on fieldName when appending Object or
+ Object[]. Thanks to Nick Manley.
+o LANG-1178: ArrayUtils.removeAll(Object array, int... indices) should do the
+ clone, not its callers. Thanks to Henri Yandell.
+o LANG-1120: StringUtils.stripAccents should remove accents from "?" and "?".
+ Thanks to kaching88.
+o LANG-1205: NumberUtils.createNumber() behaves inconsistently with
+ NumberUtils.isNumber(). Thanks to pbrose.
+o LANG-1222: Fix for incorrect comment on StringUtils.containsIgnoreCase
+ method. Thanks to Adam J.
+o LANG-1221: Fix typo on appendIfMissing javadoc. Thanks to Pierre Templier.
+o LANG-1202: parseDateStrictly doesn't pass specified locale. Thanks to
+ Markus Jelsma.
+o LANG-1219: FastDateFormat doesn't respect summer daylight in some localized
+ strings. Thanks to Jarek.
+o LANG-1175: Remove Ant-based build.
+o LANG-1194: Limit max heap memory for consistent Travis CI build.
+o LANG-1186: Fix NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to NickManley.
+o LANG-1193: ordinalIndexOf("abc", "ab", 1) gives incorrect answer of -1
+ (correct answer should be 0); revert fix for LANG-1077. Thanks to
+ Qin Li.
+o LANG-1002: Several predefined ISO FastDateFormats in DateFormatUtils are
+ incorrect. Thanks to Michael Osipov.
+o LANG-1152: StringIndexOutOfBoundsException or field over-write for large year
+ fields in FastDateParser. Thanks to Pas Filip.
+o LANG-1141: StrLookup.systemPropertiesLookup() no longer reacts on changes on
+ system properties.
+o LANG-1147: EnumUtils *BitVector issue with more than 32 values Enum. Thanks
+ to Loic Guibert.
+o LANG-1059: Capitalize javadoc is incorrect. Thanks to Colin Casey.
+o LANG-1122: Inconsistent behavior of swap for malformed inputs. Thanks to
+ Adrian Ber.
+o LANG-1130: Fix critical issues reported by SonarQube.
+o LANG-1131: StrBuilder.equals(StrBuilder) doesn't check for null inputs.
+o LANG-1128: JsonToStringStyle doesn't handle chars and objects correctly.
+ Thanks to Jack Tan.
+o LANG-1126: DateFormatUtilsTest.testSMTP depends on the default Locale.
+o LANG-1123: Unit test FastDatePrinterTimeZonesTest needs a timezone set.
+ Thanks to Christian P. Momon.
+o LANG-916: DateFormatUtils.format does not correctly change Calendar
+ TimeZone in certain situations. Thanks to Christian P. Momon.
+o LANG-1116: DateUtilsTest.testLang530 fails for some timezones. Thanks to
+ Aaron Sheldon.
+o LANG-1114: TypeUtils.ParameterizedType#equals doesn't work with wildcard
+ types. Thanks to Andy Coates.
+o LANG-1118: StringUtils.repeat('z', -1) throws NegativeArraySizeException.
+ Thanks to Loic Guibert.
+o LANG-1111: Fix FindBugs warnings in DurationFormatUtils.
+o LANG-1162: StringUtils#equals fails with Index OOBE on non-Strings with
+ identical leading prefix..
+o LANG-1163: There are no tests for CharSequenceUtils.regionMatches.
+o LANG-1200: Fix Javadoc of StringUtils.ordinalIndexOf. Thanks to BarkZhang.
+o LANG-1191: Incorrect Javadoc
+ StringUtils.containsAny(CharSequence, CharSequence...). Thanks to
+ qed, Brent Worden and Gary Gregory.
+
+CHANGES
+=========
+o LANG-1197: Prepare Java 9 detection.
+o LANG-1262: CompareToBuilder.append(Object, Object, Comparator) method is too
+ big to be inlined. Thanks to Ruslan Cheremin.
+o LANG-1259: Javadoc for ArrayUtils.isNotEmpty() is slightly misleading. Thanks
+ to Dominik Stadler.
+o LANG-1247: FastDatePrinter generates extra Date objects. Thanks to
+ Benoit Wiart.
+o LANG-1229: HashCodeBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1243: Simplify ArrayUtils removeElements by using new decrementAndGet()
+ method.
+o LANG-1240: Optimize BitField constructor implementation. Thanks to zhanhb.
+o LANG-1206: Improve CharSetUtils.squeeze() performance. Thanks to
+ Mohammed Alfallaj.
+o LANG-1176: Improve ArrayUtils removeElements time complexity to O(n). Thanks
+ to Jeffery Yuan.
+o LANG-1234: getLevenshteinDistance with a threshold: optimize implementation
+ if the strings lengths differ more than the threshold. Thanks to
+ Jonatan Jönsson.
+o LANG-1151: Performance improvements for NumberUtils.isParsable. Thanks to
+ Juan Pablo Santos Rodríguez.
+o LANG-1218: EqualsBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1210: StringUtils#startsWithAny has error in Javadoc. Thanks to
+ Matthias Niehoff.
+o LANG-1208: StrSubstitutor can preserve escapes. Thanks to Samuel Karp.
+o LANG-1182: Clarify Javadoc of StringUtils.containsAny(). Thanks to
+ Larry West and Pascal Schumacher.
+o LANG-1183: Making replacePattern/removePattern methods null safe in
+ StringUtils.
+o LANG-1057: Replace StringBuilder with String concatenation for better
+ optimization. Thanks to Otávio Santana.
+o LANG-1075: Deprecate SystemUtils.FILE_SEPARATOR and
+ SystemUtils.PATH_SEPARATOR.
+o LANG-979: TypeUtils.parameterizeWithOwner - wrong format descriptor for
+ "invalid number of type parameters". Thanks to Bruno P. Kinoshita.
+o LANG-1112: MultilineRecursiveToStringStyle largely unusable due to being
+ package-private.
+o LANG-1058: StringUtils.uncapitalize performance improvement. Thanks to
+ Leo Wang.
+o LANG-1069: CharSet.getInstance documentation does not clearly explain how
+ to include negation character in set. Thanks to Arno Noordover.
+o LANG-1107: Fix parsing edge cases in FastDateParser.
+o LANG-1273: Added new property IS_OS_MAC_OSX_EL_CAPITAN in SystemUtils. Thanks
+ to Jake Wang.
+
+=============================================================================
+
+ Release Notes for version 3.4
+
+
+COMPATIBILITY
+=============
+
+Commons Lang 3.4 is fully binary compatible to the last release and can
+therefore be used as a drop in replacement for 3.3.2. Note that the value of
+org.apache.commons.lang3.time.DurationFormatUtils.ISO_EXTENDED_FORMAT_PATTERN
+has changed, which may affect clients using the constant. Furthermore the
+constant is used internally in
+o DurationFormatUtils.formatDurationISO(long)
+o DurationFormatUtils.formatPeriodISO(long, long)
+
+For more information see https://issues.apache.org/jira/browse/LANG-1000.
+
+NEW FEATURES
+==============
+
+o LANG-821: Support OS X versions in SystemUtils. Thanks to Timo Kockert.
+o LANG-1103: Add SystemUtils.IS_JAVA_1_9
+o LANG-1093: Add ClassUtils.getAbbreviatedName(). Thanks to Fabian Lange.
+o LANG-1082: Add option to disable the "objectsTriviallyEqual" test in
+ DiffBuilder. Thanks to Jonathan Baker.
+o LANG-1015: Add JsonToStringStyle implementation to ToStringStyle. Thanks to
+ Thiago Andrade.
+o LANG-1080: Add NoClassNameToStringStyle implementation of ToStringStyle.
+ Thanks to Innokenty Shuvalov.
+o LANG-883: Add StringUtils.containsAny(CharSequence, CharSequence...) method.
+ Thanks to Daniel Stewart.
+o LANG-1052: Multiline recursive to string style. Thanks to Jan Matčrne.
+o LANG-536: Add isSorted() to ArrayUtils. Thanks to James Sawle.
+o LANG-1033: Add StringUtils.countMatches(CharSequence, char)
+o LANG-1021: Provide methods to retrieve all fields/methods annotated with a
+ specific type. Thanks to Alexander Müller.
+o LANG-1016: NumberUtils#isParsable method(s). Thanks to
+ Juan Pablo Santos Rodríguez.
+o LANG-999: Add fuzzy String matching logic to StringUtils. Thanks to
+ Ben Ripkens.
+o LANG-994: Add zero copy read method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-993: Add zero copy write method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-1044: Add method MethodUtils.invokeExactMethod(Object, String)
+o LANG-1045: Add method MethodUtils.invokeMethod(Object, String)
+
+FIXED BUGS
+============
+
+o LANG-794: SystemUtils.IS_OS_WINDOWS_2008, VISTA are incorrect. Thanks to
+ Timo Kockert.
+o LANG-1104: Parse test fails for TimeZone America/Sao_Paulo
+o LANG-948: Exception while using ExtendedMessageFormat and escaping braces.
+ Thanks to Andrey Khobnya.
+o LANG-1092: Wrong formatting of time zones with daylight saving time in
+ FastDatePrinter
+o LANG-1090: FastDateParser does not set error indication in ParsePosition
+o LANG-1089: FastDateParser does not handle excess hours as per
+ SimpleDateFormat
+o LANG-1061: FastDateParser error - timezones not handled correctly. Thanks to
+ dmeneses.
+o LANG-1087: NumberUtils#createNumber() returns positive BigDecimal when
+ negative Float is expected. Thanks to Renat Zhilkibaev.
+o LANG-1081: DiffBuilder.append(String, Object left, Object right) does not do
+ a left.equals(right) check. Thanks to Jonathan Baker.
+o LANG-1055: StrSubstitutor.replaceSystemProperties does not work consistently.
+ Thanks to Jonathan Baker.
+o LANG-1083: Add (T) casts to get unit tests to pass in old JDK. Thanks to
+ Jonathan Baker.
+o LANG-1073: Read wrong component type of array in add in ArrayUtils.
+ Thanks to haiyang li.
+o LANG-1077: StringUtils.ordinalIndexOf("aaaaaa", "aa", 2) != 3 in StringUtils.
+ Thanks to haiyang li.
+o LANG-1072: Duplicated "0x" check in createBigInteger in NumberUtils. Thanks
+ to haiyang li.
+o LANG-1064: StringUtils.abbreviate description doesn't agree with the
+ examples. Thanks to B.J. Herbison.
+o LANG-1041: Fix MethodUtilsTest so it does not depend on JDK method ordering.
+ Thanks to Alexandre Bartel.
+o LANG-1000: ParseException when trying to parse UTC dates with Z as zone
+ designator using DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT
+o LANG-1035: Javadoc for EqualsBuilder.reflectionEquals() is unclear
+o LANG-1001: ISO 8601 misspelled throughout the Javadocs. Thanks to
+ Michael Osipov.
+o LANG-1088: FastDateParser should be case insensitive
+o LANG-995: Fix bug with stripping spaces on last line in WordUtils.wrap().
+ Thanks to Andrey Khobnya.
+
+CHANGES
+=========
+
+o LANG-1102: Make logic for comparing OS versions in SystemUtils smarter
+o LANG-1091: Shutdown thread pools in test cases. Thanks to Fabian Lange.
+o LANG-1101: FastDateParser and FastDatePrinter support 'X' format
+o LANG-1100: Avoid memory allocation when using date formatting to StringBuffer.
+ Thanks to mbracher.
+o LANG-935: Possible performance improvement on string escape functions.
+ Thanks to Fabian Lange, Thomas Neidhart.
+o LANG-1098: Avoid String allocation in StrBuilder.append(CharSequence). Thanks
+ to Mikhail Mazurskiy, Fabian Lange.
+o LANG-1098: Update maven-checkstyle-plugin to 2.14. Thanks to Micha? Kordas.
+o LANG-1097: Update org.easymock:easymock to 3.3.1. Thanks to Micha? Kordas.
+o LANG-1096: Update maven-pmd-plugin to 3.4. Thanks to Micha? Kordas.
+o LANG-1095: Update maven-antrun-plugin to 1.8. Thanks to Micha? Kordas.
+o LANG-877: Performance improvements for StringEscapeUtils. Thanks to
+ Fabian Lange.
+o LANG-1071: Fix wrong examples in Javadoc of
+ StringUtils.replaceEachRepeatedly(...),
+ StringUtils.replaceEach(...) Thanks to Arno Noordover.
+o LANG-827: CompareToBuilder's doc doesn't specify precedence of fields it
+ uses in performing comparisons
+o LANG-1020: Improve performance of normalize space. Thanks to Libor Ondrusek.
+o LANG-1027: org.apache.commons.lang3.SystemUtils#isJavaVersionAtLeast should
+ return true by default
+o LANG-1026: Bring static method references in StringUtils to consistent style.
+ Thanks to Alex Yursha.
+o LANG-1017: Use non-ASCII digits in Javadoc examples for
+ StringUtils.isNumeric. Thanks to Christoph Schneegans.
+o LANG-1008: Change min/max methods in NumberUtils/IEEE754rUtils from array
+ input parameters to varargs. Thanks to Thiago Andrade.
+o LANG-1006: Add wrap (with String or char) to StringUtils. Thanks to
+ Thiago Andrade.
+o LANG-1005: Extend DurationFormatUtils#formatDurationISO default pattern to
+ match #formatDurationHMS. Thanks to Michael Osipov.
+o LANG-1007: Fixing NumberUtils JAVADoc comments for max methods. Thanks to
+ Thiago Andrade.
+o LANG-731: Better Javadoc for BitField class
+o LANG-1004: DurationFormatUtils#formatDurationHMS implementation does not
+ correspond to Javadoc and vice versa. Thanks to Michael Osipov.
+o LANG-1003: DurationFormatUtils are not able to handle negative
+ durations/periods
+o LANG-998: Javadoc is not clear on preferred pattern to instantiate
+ FastDateParser / FastDatePrinter
+
+=============================================================================
+
+ Release Notes for version 3.3.2
+
+NEW FEATURES
+==============
+
+o LANG-989: Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8
+
+FIXED BUGS
+============
+
+o LANG-992: NumberUtils#isNumber() returns false for "0.0", "0.4790", et al
+
+=============================================================================
+
+ Release Notes for version 3.3.1
+
+FIXED BUGS
+============
+
+o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong
+ days
+o LANG-983: DurationFormatUtils does not describe format string fully
+o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote char
+o LANG-984: DurationFormatUtils does not handle large durations correctly
+o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field
+ size should be 4 digits
+o LANG-978: Failing tests with Java 8 b128
+
+=============================================================================
+
+ Release Notes for version 3.3
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian Götz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio Fernández.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+=============================================================================
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+=============================================================================
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+=============================================================================
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+=============================================================================
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12 hour clock and not
+ 24 hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.8.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.8.txt
new file mode 100644
index 000000000..b760d8308
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.8.txt
@@ -0,0 +1,1237 @@
+
+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.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.8
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.8 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 7.0, making use of features that arrived with Java 7.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.
+
+Changes in this version include:
+
+New features:
+o LANG-1352: EnumUtils.getEnumIgnoreCase and isValidEnumIgnoreCase methods added Thanks to Ruslan Sibgatullin.
+o LANG-1372: Add ToStringSummary annotation Thanks to Sérgio Ozaki.
+o LANG-1356: Add bypass option for classes to recursive and reflective EqualsBuilder Thanks to Yathos UG.
+o LANG-1391: Improve Javadoc for StringUtils.isAnyEmpty(null) Thanks to Sauro Matulli, Oleg Chubaryov.
+o LANG-1393: Add API SystemUtils.String getEnvironmentVariable(final String name, final String defaultValue) Thanks to Gary Gregory.
+o LANG-1394: org.apache.commons.lang3.SystemUtils should not write to System.err. Thanks to Sebb, Gary Gregory.
+o LANG-1238: Add RegexUtils class instead of overloading methods in StringUtils that take a regex to take precompiled Pattern. Thanks to Christopher Cordeiro, Gary Gregory, Bruno P. Kinoshita, Oleg Chubaryov.
+o LANG-1390: StringUtils.join() with support for List<?> with configurable start/end indices. Thanks to Jochen Schalanda.
+o LANG-1392: Methods for getting first non empty or non blank value Thanks to Jeff Nelson.
+o LANG-1408: Rounding utilities for converting to BigDecimal
+
+Fixed Bugs:
+o LANG-1380: FastDateParser too strict on abbreviated short month symbols Thanks to Markus Jelsma.
+o LANG-1396: JsonToStringStyle does not escape string names
+o LANG-1395: JsonToStringStyle does not escape double quote in a string value Thanks to Jim Gan.
+o LANG-1384: New Java version ("11") must be handled Thanks to Ian Young.
+o LANG-1364: ExceptionUtils#getRootCause(Throwable t) should return t if no lower level cause exists Thanks to Zheng Xie.
+o LANG-1060: NumberUtils.isNumber assumes number starting with Zero Thanks to Piotr Kosmala.
+o LANG-1375: defaultString(final String str) in StringUtils to reuse defaultString(final String str, final String defaultStr) Thanks to Jerry Zhao.
+o LANG-1374: Parsing Json Array failed Thanks to Jaswanth Bala.
+o LANG-1371: Fix TypeUtils#parameterize to work correctly with narrower-typed array Thanks to Dmitry Ovchinnikov.
+o LANG-1370: Fix EventCountCircuitBreaker increment batch Thanks to Andre Dieb.
+o LANG-1385: NumberUtils.createNumber() throws StringIndexOutOfBoundsException instead of NumberFormatException Thanks to Rohan Padhye.
+o LANG-1397: WordUtils.wrap throws StringIndexOutOfBoundsException when wrapLength is Integer.MAX_VALUE. Thanks to Takanobu Asanuma.
+o LANG-1401: Typo in JavaDoc for lastIndexOf Thanks to Roman Golyshev, Alex Mamedov.
+
+Changes:
+o LANG-1367: ObjectUtils.identityToString(Object) and friends should allocate builders and buffers with a size Thanks to Gary Gregory.
+o LANG-1405: Remove checks for java versions below the minimum supported one Thanks to Lars Grefer.
+o LANG-1402: Null/index safe get methods for ArrayUtils Thanks to Mark Dacek.
+
+
+Historical list of changes: https://commons.apache.org/proper/commons-lang/changes-report.html
+
+For complete information on Apache Commons Lang, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Lang website:
+
+https://commons.apache.org/proper/commons-lang/
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.7
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.7 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 5.0, making use of features that arrived with Java 5.0 such as generics,
+variable arguments, autoboxing, concurrency and formatted output.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.
+
+Changes in this version include:
+
+New features:
+o LANG-1355: TimeZone.getTimeZone() in FastDateParser causes resource contention (PR #296.) Thanks to Chas Honton.
+o LANG-1360: Add methods to ObjectUtils to get various forms of class names in a null-safe manner Thanks to Gary Gregory.
+
+Fixed Bugs:
+o LANG-1362: Fix tests DateUtilsTest for Java 9 with en_GB locale Thanks to Stephen Colebourne.
+o LANG-1365: Fix NullPointerException in isJavaVersionAtLeast on Java 10, add SystemUtils.IS_JAVA_10, add JavaVersion.JAVA_10 Thanks to Gary Gregory.
+o LANG-1348: StackOverflowError on TypeUtils.toString(...) for a generic return type of Enum.valueOf Thanks to mbusso.
+o LANG-1350: ConstructorUtils.invokeConstructor(Class, Object...) regression Thanks to Brett Kail.
+o LANG-1349: EqualsBuilder#isRegistered: swappedPair construction bug Thanks to Naman Nigam.
+o LANG-1357: org.apache.commons.lang3.time.FastDateParser should use toUpperCase(Locale) Thanks to BruceKuiLiu.
+
+Changes:
+o LANG-1358: Improve StringUtils#replace throughput Thanks to Stephane Landelle.
+o LANG-1346: Remove deprecation from RandomStringUtils
+o LANG-1361: ExceptionUtils.getThrowableList() is using deprecated ExceptionUtils.getCause() Thanks to Ana.
+
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.6
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.6 version of
+Apache Commons Lang as well as a history all changes in the Commons Lang 3.x
+release line. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.6 at
+least requires Java 7.0. Note that this has changed from Commons Lang 3.5, which
+only required Java 1.6.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o The class org.apache.commons.lang3.concurrent.Memoizer is an implementation
+ of the Memoizer pattern as shown in
+ Goetz, Brian et al. (2006) - Java Concurrency in Practice, p. 108.
+o The class org.apache.commons.lang3.ArchUtils has been added. ArchUtils is
+ a utility class for the "os.arch" system property.
+
+DEPRECATIONS
+============
+
+The Apache Commons Community has recently set up the Commons Text component
+as a home for algorithms working on strings. For this reason most of the string
+focused functionality in Commons Lang has been deprecated and moved to
+Commons Text. This includes:
+
+o All classes in the org.apache.commons.lang3.text and the
+ org.apache.commons.lang3.text.translate packages
+o org.apache.commons.lang3.StringEscapeUtils
+o org.apache.commons.lang3.RandomStringUtils
+o The methods org.apache.commons.lang3.StringUtils.getJaroWinklerDistance and
+ org.apache.commons.lang3.StringUtils.getLevenshteinDistance
+
+For more information see the Commons Text website:
+
+ https://commons.apache.org/text
+
+The class org.apache.commons.lang3.CharEncoding has been deprecated in favor of
+java.nio.charset.StandardCharsets.
+
+The following methods have been deprecated in
+org.apache.commons.lang3.ArrayUtils in favor of the corresponding insert
+methods. Note that the handling for null inputs differs between add and insert.
+
+o add(boolean[], int, boolean) -> insert(int, boolean[], boolean...)
+o add(byte[], int, boolean) -> insert(int, byte[], byte...)
+o add(char[], int, boolean) -> insert(int, char[], char...)
+o add(double[], int, boolean) -> insert(int, double[], double...)
+o add(float[], int, boolean) -> insert(int, float[], float...)
+o add(int[], int, boolean) -> insert(int, int[], int...)
+o add(long[], int, boolean) -> insert(int, long[], long...)
+o add(short[], int, boolean) -> insert(int, short[], short...)
+o add(T[], int, boolean) -> insert(int, T[], T...)
+
+
+COMPATIBILITY WITH JAVA 9
+==================
+
+The MANIFEST.MF now contains an additional entry:
+
+ Automatic-Module-Name: org.apache.commons.lang3
+
+This should make it possible to use Commons Lang 3.6 as a module in the Java 9
+module system. For more information see the corresponding issue and the
+referenced mailing list discussions:
+
+ https://issues.apache.org/jira/browse/LANG-1338
+
+The build problems present in the 3.5 release have been resolved. Building
+Commons Lang 3.6 should work out of the box with the latest Java 9 EA build.
+Please report any Java 9 related issues at:
+
+ https://issues.apache.org/jira/browse/LANG
+
+NEW FEATURES
+============
+
+o LANG-1336: Add NUL Byte To CharUtils. Thanks to Beluga Behr.
+o LANG-1304: Add method in StringUtils to determine if string contains both
+ mixed cased characters. Thanks to Andy Klimczak.
+o LANG-1325: Increase test coverage of ToStringBuilder class to 100%.
+ Thanks to Arshad Basha.
+o LANG-1307: Add a method in StringUtils to extract only digits out of input
+ string. Thanks to Arshad Basha.
+o LANG-1256: Add JMH maven dependencies. Thanks to C0rWin.
+o LANG-1167: Add null filter to ReflectionToStringBuilder.
+ Thanks to Mark Dacek.
+o LANG-1299: Add method for converting string to an array of code points.
+o LANG-660: Add methods to insert arrays into arrays at an index.
+o LANG-1034: Add support for recursive comparison to
+ EqualsBuilder#reflectionEquals. Thanks to Yathos UG.
+o LANG-1067: Add a reflection-based variant of DiffBuilder.
+o LANG-740: Implementation of a Memoizer. Thanks to James Sawle.
+o LANG-1258: Add ArrayUtils#toStringArray method.
+ Thanks to IG, Grzegorz Ro?niecki.
+o LANG-1160: StringUtils#abbreviate should support 'custom ellipses' parameter.
+o LANG-1293: Add StringUtils#isAllEmpty and #isAllBlank methods.
+ Thanks to Pierre Templier, Martin Tarjanyi.
+o LANG-1313: Add ArchUtils - An utility class for the "os.arch" system property.
+ Thanks to Tomschi.
+o LANG-1272: Add shuffle methods to ArrayUtils.
+o LANG-1317: Add MethodUtils#findAnnotation and extend
+ MethodUtils#getMethodsWithAnnotation for non-public, super-class
+ and interface methods. Thanks to Yasser Zamani.
+o LANG-1331: Add ImmutablePair.nullPair().
+o LANG-1332: Add ImmutableTriple.nullTriple().
+
+FIXED BUGS
+==========
+
+o LANG-1337: Fix test failures in IBM JDK 8 for ToStringBuilderTest.
+o LANG-1319: MultilineRecursiveToStringStyle StackOverflowError when object is
+ an array.
+o LANG-1320: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code followed by variant.
+o LANG-1300: Clarify or improve behavior of int-based indexOf methods in
+ StringUtils. Thanks to Mark Dacek.
+o LANG-1286: RandomStringUtils random method can overflow and return characters
+ outside of specified range.
+o LANG-1292: WordUtils.wrap throws StringIndexOutOfBoundsException.
+o LANG-1287: RandomStringUtils#random can enter infinite loop if end parameter
+ is to small. Thanks to Ivan Morozov.
+o LANG-1285: NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to Francesco Chicchiriccň.
+o LANG-1281: Javadoc of StringUtils.ordinalIndexOf is contradictory.
+ Thanks to Andreas Lundblad.
+o LANG-1188: StringUtils#join(T...): warning: [unchecked] Possible heap
+ pollution from parameterized vararg type T.
+o LANG-1144: Multiple calls of
+ org.apache.commons.lang3.concurrent.LazyInitializer.initialize()
+ are possible. Thanks to Waldemar Maier, Gary Gregory.
+o LANG-1276: StrBuilder#replaceAll ArrayIndexOutOfBoundsException.
+ Thanks to Andy Klimczak.
+o LANG-1278: BooleanUtils javadoc issues. Thanks to Duke Yin.
+o LANG-1070: ArrayUtils#add confusing example in javadoc.
+ Thanks to Paul Pogonyshev.
+o LANG-1271: StringUtils#isAnyEmpty and #isAnyBlank should return false for an
+ empty array. Thanks to Pierre Templier.
+o LANG-1155: Add StringUtils#unwrap. Thanks to Saif Asif, Thiago Andrade.
+o LANG-1311: TypeUtils.toString() doesn't handle primitive and Object arrays
+ correctly. Thanks to Aaron Digulla.
+o LANG-1312: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code.
+o LANG-1265: Build failures when building with Java 9 EA.
+o LANG-1314: javadoc creation broken with Java 8. Thanks to Allon Murienik.
+o LANG-1310: MethodUtils.invokeMethod throws ArrayStoreException if using
+ varargs arguments and smaller types than the method defines.
+ Thanks to Don Jeba.
+
+CHANGES
+=======
+
+o LANG-1338: Add Automatic-Module-Name MANIFEST entry for Java 9
+ compatibility.
+o LANG-1334: Deprecate CharEncoding in favour of
+ java.nio.charset.StandardCharsets.
+o LANG-1110: Implement HashSetvBitSetTest using JMH.
+ Thanks to Bruno P. Kinoshita.
+o LANG-1290: Increase test coverage of org.apache.commons.lang3.ArrayUtils.
+ Thanks to Andrii Abramov.
+o LANG-1274: StrSubstitutor should state its thread safety.
+o LANG-1277: StringUtils#getLevenshteinDistance reduce memory consumption.
+ Thanks to yufcuy.
+o LANG-1279: Update Java requirement from Java 6 to 7.
+o LANG-1143: StringUtils should use toXxxxCase(int) rather than
+ toXxxxCase(char). Thanks to sebb.
+o LANG-1297: Add SystemUtils.getHostName() API.
+o LANG-1301: Moving apache-rat-plugin configuration into pluginManagement.
+ Thanks to Karl Heinz Marbaise.
+o LANG-1316: Deprecate classes/methods moved to commons-text.
+
+=============================================================================
+
+ Release Notes for version 3.5
+
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o Added Java 9 detection to org.apache.commons.lang3.SystemUtils.
+o Support for shifting and swapping elements in
+ org.apache.commons.lang3.ArrayUtils.
+o New methods for generating random strings from different character classes
+ including alphabetic, alpha-numeric and ASCII added to
+ org.apache.commons.lang3.RandomStringUtils.
+o Numerous extensions to org.apache.commons.lang3.StringUtils including
+ null safe compare variants, more remove and replace variants, rotation and
+ truncation.
+o Added org.apache.commons.lang3.ThreadUtils - a utility class to work with
+ instances of java.lang.Thread and java.lang.ThreadGroup.
+o Added annotations @EqualsExclude, @HashCodeExclude and @ToStringExclude to
+ mark fields which should be ignored by the reflective builders in the
+ org.apache.commons.lang3.builder package.
+o Support for various modify and retrieve value use cases added to the classes
+ in org.apache.commons.lang3.mutable.
+
+COMPATIBILITY
+=============
+
+Apache Commons Lang 3.5 is binary compatible with the 3.4 release. Users
+should not experience any problems when upgrading from 3.4 to 3.5.
+
+There has been an addition to the org.apache.commons.lang3.time.DatePrinter
+interface:
+
+o Added method 'public boolean parse(java.lang.String, java.text.ParsePosition,
+ java.util.Calendar)'
+o Added method 'public java.lang.Appendable format(long, java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Date,
+ java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Calendar,
+ java.lang.Appendable)'
+
+For this reason 3.5 is not strictly source compatible to 3.4. Since the
+DatePrinter interface is not meant to be implemented by clients, this
+change it not considered to cause any problems.
+
+JAVA 9 SUPPORT
+==============
+
+Java 9 introduces a new version-string scheme. Details of this new scheme are
+documented in JEP-223 (https://openjdk.org/jeps/223). In order to support
+JEP-223 two classes had to be changed:
+
+o org.apache.commons.lang3.JavaVersion
+ deprecated enum constant JAVA_1_9
+ introduced enum constant JAVA_9
+
+o org.apache.commons.lang3.SystemUtils
+ deprecated constant IS_JAVA_1_9
+ introduced constant IS_JAVA_9
+
+For more information see LANG-1197
+(https://issues.apache.org/jira/browse/LANG-1197). All other APIs are expected
+to work with Java 9.
+
+BUILDING ON JAVA 9
+==================
+
+Java 8 introduced the Unicode Consortium's Common Locale Data Repository as
+alternative source for locale data. Java 9 will use the CLDR provider as
+default provider for locale data (see https://openjdk.org/jeps/252). This
+causes an number of locale-sensitive test in Commons Lang to fail. In order
+to build Commons Lang 3.5 on Java 9, the locale provider has to be set to
+'JRE':
+
+ mvn -Djava.locale.providers=JRE clean install
+
+We are currently investigating ways to support building on Java 9 without
+further configuration. For more information see:
+https://issues.apache.org/jira/browse/LANG-1265
+
+
+NEW FEATURES
+==============
+
+o LANG-1275: Added a tryAcquire() method to TimedSemaphore.
+o LANG-1255: Add DateUtils.toCalendar(Date, TimeZone). Thanks to Kaiyuan Wang.
+o LANG-1023: Add WordUtils.wrap overload with customizable breakable character.
+ Thanks to Marko Bekhta.
+o LANG-787: Add method removeIgnoreCase(String, String) to StringUtils. Thanks
+ to Gokul Nanthakumar C.
+o LANG-1224: Extend RandomStringUtils with methods that generate strings
+ between a min and max length. Thanks to Caleb Cushing.
+o LANG-1257: Add APIs StringUtils.wrapIfMissing(String, char|String). Thanks to
+ Gary Gregory.
+o LANG-1253: Add RandomUtils#nextBoolean() method. Thanks to adilek.
+o LANG-1085: Add a circuit breaker implementation. Thanks to Oliver Heger and
+ Bruno P. Kinoshita.
+o LANG-1013: Add StringUtils.truncate(). Thanks to Thiago Andrade.
+o LANG-1195: Enhance MethodUtils to allow invocation of private methods. Thanks
+ to Derek C. Ashmore.
+o LANG-1189: Add getAndIncrement/getAndDecrement/getAndAdd/incrementAndGet/
+ decrementAndGet/addAndGet in Mutable* classes. Thanks to
+ Haiyang Li and Matthew Bartenschlag.
+o LANG-1225: Add RandomStringUtils#randomGraph and #randomPrint which match
+ corresponding regular expression class. Thanks to Caleb Cushing.
+o LANG-1223: Add StopWatch#getTime(TimeUnit). Thanks to Nick Manley.
+o LANG-781: Add methods to ObjectUtils class to check for null elements in the
+ array. Thanks to Krzysztof Wolny.
+o LANG-1228: Prefer Throwable.getCause() in ExceptionUtils.getCause().
+ Thanks to Brad Hess.
+o LANG-1233: DiffBuilder add method to allow appending from a DiffResult.
+ Thanks to Nick Manley.
+o LANG-1168: Add SystemUtils.IS_OS_WINDOWS_10 property.
+ Thanks to Pascal Schumacher.
+o LANG-1115: Add support for varargs in ConstructorUtils, MemberUtils, and
+ MethodUtils. Thanks to Jim Lloyd and Joe Ferner.
+o LANG-1134: Add methods to check numbers against NaN and infinite to
+ Validate. Thanks to Alan Smithee.
+o LANG-1220: Add tests for missed branches in DateUtils.
+ Thanks to Casey Scarborough.
+o LANG-1146: z/OS identification in SystemUtils.
+ Thanks to Gabor Liptak.
+o LANG-1192: FastDateFormat support of the week-year component (uppercase 'Y').
+ Thanks to Dominik Stadler.
+o LANG-1169: Add StringUtils methods to compare a string to multiple strings.
+ Thanks to Rafal Glowinski, Robert Parr and Arman Sharif.
+o LANG-1185: Add remove by regular expression methods in StringUtils.
+o LANG-1139: Add replace by regular expression methods in StringUtils.
+o LANG-1171: Add compare methods in StringUtils.
+o LANG-1174: Add sugar to RandomUtils. Thanks to Punkratz312.
+o LANG-1154: FastDateFormat APIs that use a StringBuilder. Thanks to
+ Gary Gregory.
+o LANG-1149: Ability to throw checked exceptions without declaring them. Thanks
+ to Gregory Zak.
+o LANG-1153: Implement ParsePosition api for FastDateParser.
+o LANG-1137: Add check for duplicate event listener in EventListenerSupport.
+ Thanks to Matthew Aguirre.
+o LANG-1135: Add method containsAllWords to WordUtils. Thanks to
+ Eduardo Martins.
+o LANG-1132: ReflectionToStringBuilder doesn't throw IllegalArgumentException
+ when the constructor's object param is null. Thanks to Jack Tan.
+o LANG-701: StringUtils join with var args. Thanks to James Sawle.
+o LANG-1105: Add ThreadUtils - A utility class which provides helper methods
+ related to java.lang.Thread Issue: LANG-1105. Thanks to
+ Hendrik Saly.
+o LANG-1031: Add annotations to exclude fields from ReflectionEqualsBuilder,
+ ReflectionToStringBuilder and ReflectionHashCodeBuilder. Thanks
+ to Felipe Adorno.
+o LANG-1127: Use JUnit rules to set and reset the default Locale and TimeZone.
+o LANG-1119: Add rotate(string, int) method to StringUtils. Thanks to
+ Loic Guibert.
+o LANG-1099: Add swap and shift operations for arrays to ArrayUtils. Thanks to
+ Adrian Ber.
+o LANG-1050: Change nullToEmpty methods to generics. Thanks to James Sawle.
+o LANG-1074: Add a method to ArrayUtils for removing all occurrences of a given
+ element Issue: LANG-1074. Thanks to Haiyang Li.
+
+FIXED BUGS
+============
+
+o LANG-1261: ArrayUtils.contains returns false for instances of subtypes.
+o LANG-1252: Rename NumberUtils.isNumber, isCreatable to better reflect
+ createNumber. Also, accommodated for "+" symbol as prefix in
+ isCreatable and isNumber. Thanks to Rob Tompkins.
+o LANG-1230: Remove unnecessary synchronization from registry lookup in
+ EqualsBuilder and HashCodeBuilder. Thanks to Philippe Marschall.
+o LANG-1214: Handle "void" in ClassUtils.getClass(). Thanks to Henry Tung.
+o LANG-1250: SerializationUtils#deserialize has unnecessary code and a comment
+ for that. Thanks to Glease Wang.
+o LANG-1190: TypeUtils.isAssignable throws NullPointerException when fromType
+ has type variables and toType generic superclass specifies type
+ variable. Thanks to Pascal Schumacher.
+o LANG-1226: StringUtils#normalizeSpace does not trim the string anymore.
+ Thanks to Pascal Schumacher.
+o LANG-1251: SerializationUtils.ClassLoaderAwareObjectInputStream should use
+ static initializer to initialize primitiveTypes map. Thanks to
+ Takuya Ueshin.
+o LANG-1248: FastDatePrinter Memory allocation regression. Thanks to
+ Benoit Wiart.
+o LANG-1018: Fix precision loss on NumberUtils.createNumber(String). Thanks to
+ Nick Manley.
+o LANG-1199: Fix implementation of StringUtils.getJaroWinklerDistance(). Thanks
+ to M. Steiger.
+o LANG-1244: Fix dead links in StringUtils.getLevenshteinDistance() javadoc.
+ Thanks to jjbankert.
+o LANG-1242: "\u2284":"?" mapping missing from
+ EntityArrays#HTML40_EXTENDED_ESCAPE. Thanks to Neal Stewart.
+o LANG-901: StringUtils#startsWithAny/endsWithAny is case sensitive -
+ documented as case insensitive. Thanks to Matthew Bartenschlag.
+o LANG-1232: DiffBuilder: Add null check on fieldName when appending Object or
+ Object[]. Thanks to Nick Manley.
+o LANG-1178: ArrayUtils.removeAll(Object array, int... indices) should do the
+ clone, not its callers. Thanks to Henri Yandell.
+o LANG-1120: StringUtils.stripAccents should remove accents from "?" and "?".
+ Thanks to kaching88.
+o LANG-1205: NumberUtils.createNumber() behaves inconsistently with
+ NumberUtils.isNumber(). Thanks to pbrose.
+o LANG-1222: Fix for incorrect comment on StringUtils.containsIgnoreCase
+ method. Thanks to Adam J.
+o LANG-1221: Fix typo on appendIfMissing javadoc. Thanks to Pierre Templier.
+o LANG-1202: parseDateStrictly doesn't pass specified locale. Thanks to
+ Markus Jelsma.
+o LANG-1219: FastDateFormat doesn't respect summer daylight in some localized
+ strings. Thanks to Jarek.
+o LANG-1175: Remove Ant-based build.
+o LANG-1194: Limit max heap memory for consistent Travis CI build.
+o LANG-1186: Fix NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to NickManley.
+o LANG-1193: ordinalIndexOf("abc", "ab", 1) gives incorrect answer of -1
+ (correct answer should be 0); revert fix for LANG-1077. Thanks to
+ Qin Li.
+o LANG-1002: Several predefined ISO FastDateFormats in DateFormatUtils are
+ incorrect. Thanks to Michael Osipov.
+o LANG-1152: StringIndexOutOfBoundsException or field over-write for large year
+ fields in FastDateParser. Thanks to Pas Filip.
+o LANG-1141: StrLookup.systemPropertiesLookup() no longer reacts on changes on
+ system properties.
+o LANG-1147: EnumUtils *BitVector issue with more than 32 values Enum. Thanks
+ to Loic Guibert.
+o LANG-1059: Capitalize javadoc is incorrect. Thanks to Colin Casey.
+o LANG-1122: Inconsistent behavior of swap for malformed inputs. Thanks to
+ Adrian Ber.
+o LANG-1130: Fix critical issues reported by SonarQube.
+o LANG-1131: StrBuilder.equals(StrBuilder) doesn't check for null inputs.
+o LANG-1128: JsonToStringStyle doesn't handle chars and objects correctly.
+ Thanks to Jack Tan.
+o LANG-1126: DateFormatUtilsTest.testSMTP depends on the default Locale.
+o LANG-1123: Unit test FastDatePrinterTimeZonesTest needs a timezone set.
+ Thanks to Christian P. Momon.
+o LANG-916: DateFormatUtils.format does not correctly change Calendar
+ TimeZone in certain situations. Thanks to Christian P. Momon.
+o LANG-1116: DateUtilsTest.testLang530 fails for some timezones. Thanks to
+ Aaron Sheldon.
+o LANG-1114: TypeUtils.ParameterizedType#equals doesn't work with wildcard
+ types. Thanks to Andy Coates.
+o LANG-1118: StringUtils.repeat('z', -1) throws NegativeArraySizeException.
+ Thanks to Loic Guibert.
+o LANG-1111: Fix FindBugs warnings in DurationFormatUtils.
+o LANG-1162: StringUtils#equals fails with Index OOBE on non-Strings with
+ identical leading prefix..
+o LANG-1163: There are no tests for CharSequenceUtils.regionMatches.
+o LANG-1200: Fix Javadoc of StringUtils.ordinalIndexOf. Thanks to BarkZhang.
+o LANG-1191: Incorrect Javadoc
+ StringUtils.containsAny(CharSequence, CharSequence...). Thanks to
+ qed, Brent Worden and Gary Gregory.
+
+CHANGES
+=========
+o LANG-1197: Prepare Java 9 detection.
+o LANG-1262: CompareToBuilder.append(Object, Object, Comparator) method is too
+ big to be inlined. Thanks to Ruslan Cheremin.
+o LANG-1259: Javadoc for ArrayUtils.isNotEmpty() is slightly misleading. Thanks
+ to Dominik Stadler.
+o LANG-1247: FastDatePrinter generates extra Date objects. Thanks to
+ Benoit Wiart.
+o LANG-1229: HashCodeBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1243: Simplify ArrayUtils removeElements by using new decrementAndGet()
+ method.
+o LANG-1240: Optimize BitField constructor implementation. Thanks to zhanhb.
+o LANG-1206: Improve CharSetUtils.squeeze() performance. Thanks to
+ Mohammed Alfallaj.
+o LANG-1176: Improve ArrayUtils removeElements time complexity to O(n). Thanks
+ to Jeffery Yuan.
+o LANG-1234: getLevenshteinDistance with a threshold: optimize implementation
+ if the strings lengths differ more than the threshold. Thanks to
+ Jonatan Jönsson.
+o LANG-1151: Performance improvements for NumberUtils.isParsable. Thanks to
+ Juan Pablo Santos Rodríguez.
+o LANG-1218: EqualsBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1210: StringUtils#startsWithAny has error in Javadoc. Thanks to
+ Matthias Niehoff.
+o LANG-1208: StrSubstitutor can preserve escapes. Thanks to Samuel Karp.
+o LANG-1182: Clarify Javadoc of StringUtils.containsAny(). Thanks to
+ Larry West and Pascal Schumacher.
+o LANG-1183: Making replacePattern/removePattern methods null safe in
+ StringUtils.
+o LANG-1057: Replace StringBuilder with String concatenation for better
+ optimization. Thanks to Otávio Santana.
+o LANG-1075: Deprecate SystemUtils.FILE_SEPARATOR and
+ SystemUtils.PATH_SEPARATOR.
+o LANG-979: TypeUtils.parameterizeWithOwner - wrong format descriptor for
+ "invalid number of type parameters". Thanks to Bruno P. Kinoshita.
+o LANG-1112: MultilineRecursiveToStringStyle largely unusable due to being
+ package-private.
+o LANG-1058: StringUtils.uncapitalize performance improvement. Thanks to
+ Leo Wang.
+o LANG-1069: CharSet.getInstance documentation does not clearly explain how
+ to include negation character in set. Thanks to Arno Noordover.
+o LANG-1107: Fix parsing edge cases in FastDateParser.
+o LANG-1273: Added new property IS_OS_MAC_OSX_EL_CAPITAN in SystemUtils. Thanks
+ to Jake Wang.
+
+=============================================================================
+
+ Release Notes for version 3.4
+
+
+COMPATIBILITY
+=============
+
+Commons Lang 3.4 is fully binary compatible to the last release and can
+therefore be used as a drop in replacement for 3.3.2. Note that the value of
+org.apache.commons.lang3.time.DurationFormatUtils.ISO_EXTENDED_FORMAT_PATTERN
+has changed, which may affect clients using the constant. Furthermore the
+constant is used internally in
+o DurationFormatUtils.formatDurationISO(long)
+o DurationFormatUtils.formatPeriodISO(long, long)
+
+For more information see https://issues.apache.org/jira/browse/LANG-1000.
+
+NEW FEATURES
+==============
+
+o LANG-821: Support OS X versions in SystemUtils. Thanks to Timo Kockert.
+o LANG-1103: Add SystemUtils.IS_JAVA_1_9
+o LANG-1093: Add ClassUtils.getAbbreviatedName(). Thanks to Fabian Lange.
+o LANG-1082: Add option to disable the "objectsTriviallyEqual" test in
+ DiffBuilder. Thanks to Jonathan Baker.
+o LANG-1015: Add JsonToStringStyle implementation to ToStringStyle. Thanks to
+ Thiago Andrade.
+o LANG-1080: Add NoClassNameToStringStyle implementation of ToStringStyle.
+ Thanks to Innokenty Shuvalov.
+o LANG-883: Add StringUtils.containsAny(CharSequence, CharSequence...) method.
+ Thanks to Daniel Stewart.
+o LANG-1052: Multiline recursive to string style. Thanks to Jan Matčrne.
+o LANG-536: Add isSorted() to ArrayUtils. Thanks to James Sawle.
+o LANG-1033: Add StringUtils.countMatches(CharSequence, char)
+o LANG-1021: Provide methods to retrieve all fields/methods annotated with a
+ specific type. Thanks to Alexander Müller.
+o LANG-1016: NumberUtils#isParsable method(s). Thanks to
+ Juan Pablo Santos Rodríguez.
+o LANG-999: Add fuzzy String matching logic to StringUtils. Thanks to
+ Ben Ripkens.
+o LANG-994: Add zero copy read method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-993: Add zero copy write method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-1044: Add method MethodUtils.invokeExactMethod(Object, String)
+o LANG-1045: Add method MethodUtils.invokeMethod(Object, String)
+
+FIXED BUGS
+============
+
+o LANG-794: SystemUtils.IS_OS_WINDOWS_2008, VISTA are incorrect. Thanks to
+ Timo Kockert.
+o LANG-1104: Parse test fails for TimeZone America/Sao_Paulo
+o LANG-948: Exception while using ExtendedMessageFormat and escaping braces.
+ Thanks to Andrey Khobnya.
+o LANG-1092: Wrong formatting of time zones with daylight saving time in
+ FastDatePrinter
+o LANG-1090: FastDateParser does not set error indication in ParsePosition
+o LANG-1089: FastDateParser does not handle excess hours as per
+ SimpleDateFormat
+o LANG-1061: FastDateParser error - timezones not handled correctly. Thanks to
+ dmeneses.
+o LANG-1087: NumberUtils#createNumber() returns positive BigDecimal when
+ negative Float is expected. Thanks to Renat Zhilkibaev.
+o LANG-1081: DiffBuilder.append(String, Object left, Object right) does not do
+ a left.equals(right) check. Thanks to Jonathan Baker.
+o LANG-1055: StrSubstitutor.replaceSystemProperties does not work consistently.
+ Thanks to Jonathan Baker.
+o LANG-1083: Add (T) casts to get unit tests to pass in old JDK. Thanks to
+ Jonathan Baker.
+o LANG-1073: Read wrong component type of array in add in ArrayUtils.
+ Thanks to haiyang li.
+o LANG-1077: StringUtils.ordinalIndexOf("aaaaaa", "aa", 2) != 3 in StringUtils.
+ Thanks to haiyang li.
+o LANG-1072: Duplicated "0x" check in createBigInteger in NumberUtils. Thanks
+ to haiyang li.
+o LANG-1064: StringUtils.abbreviate description doesn't agree with the
+ examples. Thanks to B.J. Herbison.
+o LANG-1041: Fix MethodUtilsTest so it does not depend on JDK method ordering.
+ Thanks to Alexandre Bartel.
+o LANG-1000: ParseException when trying to parse UTC dates with Z as zone
+ designator using DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT
+o LANG-1035: Javadoc for EqualsBuilder.reflectionEquals() is unclear
+o LANG-1001: ISO 8601 misspelled throughout the Javadocs. Thanks to
+ Michael Osipov.
+o LANG-1088: FastDateParser should be case insensitive
+o LANG-995: Fix bug with stripping spaces on last line in WordUtils.wrap().
+ Thanks to Andrey Khobnya.
+
+CHANGES
+=========
+
+o LANG-1102: Make logic for comparing OS versions in SystemUtils smarter
+o LANG-1091: Shutdown thread pools in test cases. Thanks to Fabian Lange.
+o LANG-1101: FastDateParser and FastDatePrinter support 'X' format
+o LANG-1100: Avoid memory allocation when using date formatting to StringBuffer.
+ Thanks to mbracher.
+o LANG-935: Possible performance improvement on string escape functions.
+ Thanks to Fabian Lange, Thomas Neidhart.
+o LANG-1098: Avoid String allocation in StrBuilder.append(CharSequence). Thanks
+ to Mikhail Mazurskiy, Fabian Lange.
+o LANG-1098: Update maven-checkstyle-plugin to 2.14. Thanks to Micha? Kordas.
+o LANG-1097: Update org.easymock:easymock to 3.3.1. Thanks to Micha? Kordas.
+o LANG-1096: Update maven-pmd-plugin to 3.4. Thanks to Micha? Kordas.
+o LANG-1095: Update maven-antrun-plugin to 1.8. Thanks to Micha? Kordas.
+o LANG-877: Performance improvements for StringEscapeUtils. Thanks to
+ Fabian Lange.
+o LANG-1071: Fix wrong examples in Javadoc of
+ StringUtils.replaceEachRepeatedly(...),
+ StringUtils.replaceEach(...) Thanks to Arno Noordover.
+o LANG-827: CompareToBuilder's doc doesn't specify precedence of fields it
+ uses in performing comparisons
+o LANG-1020: Improve performance of normalize space. Thanks to Libor Ondrusek.
+o LANG-1027: org.apache.commons.lang3.SystemUtils#isJavaVersionAtLeast should
+ return true by default
+o LANG-1026: Bring static method references in StringUtils to consistent style.
+ Thanks to Alex Yursha.
+o LANG-1017: Use non-ASCII digits in Javadoc examples for
+ StringUtils.isNumeric. Thanks to Christoph Schneegans.
+o LANG-1008: Change min/max methods in NumberUtils/IEEE754rUtils from array
+ input parameters to varargs. Thanks to Thiago Andrade.
+o LANG-1006: Add wrap (with String or char) to StringUtils. Thanks to
+ Thiago Andrade.
+o LANG-1005: Extend DurationFormatUtils#formatDurationISO default pattern to
+ match #formatDurationHMS. Thanks to Michael Osipov.
+o LANG-1007: Fixing NumberUtils JAVADoc comments for max methods. Thanks to
+ Thiago Andrade.
+o LANG-731: Better Javadoc for BitField class
+o LANG-1004: DurationFormatUtils#formatDurationHMS implementation does not
+ correspond to Javadoc and vice versa. Thanks to Michael Osipov.
+o LANG-1003: DurationFormatUtils are not able to handle negative
+ durations/periods
+o LANG-998: Javadoc is not clear on preferred pattern to instantiate
+ FastDateParser / FastDatePrinter
+
+=============================================================================
+
+ Release Notes for version 3.3.2
+
+NEW FEATURES
+==============
+
+o LANG-989: Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8
+
+FIXED BUGS
+============
+
+o LANG-992: NumberUtils#isNumber() returns false for "0.0", "0.4790", et al
+
+=============================================================================
+
+ Release Notes for version 3.3.1
+
+FIXED BUGS
+============
+
+o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong
+ days
+o LANG-983: DurationFormatUtils does not describe format string fully
+o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote char
+o LANG-984: DurationFormatUtils does not handle large durations correctly
+o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field
+ size should be 4 digits
+o LANG-978: Failing tests with Java 8 b128
+
+=============================================================================
+
+ Release Notes for version 3.3
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian Götz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio Fernández.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+=============================================================================
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+=============================================================================
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+=============================================================================
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+=============================================================================
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12 hour clock and not
+ 24 hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-3.9.txt b/src/site/resources/release-notes/RELEASE-NOTES-3.9.txt
new file mode 100644
index 000000000..613847d80
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-3.9.txt
@@ -0,0 +1,1293 @@
+ Apache Commons Lang
+ Version 3.9
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.9 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.9 and onwards now targets Java 8, making use of features that arrived with Java 8.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+New features and bug fixes. Requires Java 8, supports Java 9, 10, 11
+
+Changes in this version include:
+
+New features:
+o LANG-1442: Javadoc pointing to Commons RNG.
+o Adding the Functions class.
+o LANG-1411: Add isEmpty method to ObjectUtils Thanks to Alexander Tsvetkov.
+o LANG-1422: Add null-safe StringUtils.valueOf(char[]) to delegate to String.valueOf(char[])
+o LANG-1427: Add API org.apache.commons.lang3.SystemUtils.isJavaVersionAtMost(JavaVersion)
+
+
+Changes:
+o LANG-1416: Add more SystemUtils.IS_JAVA_XX variants.
+o LANG-1416: Update to JUnit 5
+o LANG-1417: Add @FunctionalInterface to ThreadPredicate and ThreadGroupPredicate
+o LANG-1415: Update Java Language requirement to 1.8
+o LANG-1436: Consolidate the StringUtils equals and equalsIgnoreCase Javadoc and implementation
+o (doc) Fix javadoc for 'startIndex' parameter of StringUtils.join() methods. GitHub PR #412. Thanks to Andrei Troie aft90.
+
+
+Historical list of changes: https://commons.apache.org/proper/commons-lang/changes-report.html
+
+For complete information on Apache Commons Lang, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Lang website:
+
+https://commons.apache.org/proper/commons-lang/
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.8.1
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.8.1 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 7.0, making use of features that arrived with Java 7.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+This release is a bugfix for Restoring Bundle-SymbolicName in the MANIFEST.mf file.
+
+Changes in this version include:
+
+
+Fixed Bugs:
+o LANG-1419: Restore BundleSymbolicName for OSGi
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.8
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.8 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 7.0, making use of features that arrived with Java 7.0.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.
+
+Changes in this version include:
+
+New features:
+o LANG-1352: EnumUtils.getEnumIgnoreCase and isValidEnumIgnoreCase methods added Thanks to Ruslan Sibgatullin.
+o LANG-1372: Add ToStringSummary annotation Thanks to Sérgio Ozaki.
+o LANG-1356: Add bypass option for classes to recursive and reflective EqualsBuilder Thanks to Yathos UG.
+o LANG-1391: Improve Javadoc for StringUtils.isAnyEmpty(null) Thanks to Sauro Matulli, Oleg Chubaryov.
+o LANG-1393: Add API SystemUtils.String getEnvironmentVariable(final String name, final String defaultValue) Thanks to Gary Gregory.
+o LANG-1394: org.apache.commons.lang3.SystemUtils should not write to System.err. Thanks to Sebb, Gary Gregory.
+o LANG-1238: Add RegexUtils class instead of overloading methods in StringUtils that take a regex to take precompiled Pattern. Thanks to Christopher Cordeiro, Gary Gregory, Bruno P. Kinoshita, Oleg Chubaryov.
+o LANG-1390: StringUtils.join() with support for List<?> with configurable start/end indices. Thanks to Jochen Schalanda.
+o LANG-1392: Methods for getting first non empty or non blank value Thanks to Jeff Nelson.
+o LANG-1408: Rounding utilities for converting to BigDecimal
+
+Fixed Bugs:
+o LANG-1380: FastDateParser too strict on abbreviated short month symbols Thanks to Markus Jelsma.
+o LANG-1396: JsonToStringStyle does not escape string names
+o LANG-1395: JsonToStringStyle does not escape double quote in a string value Thanks to Jim Gan.
+o LANG-1384: New Java version ("11") must be handled Thanks to Ian Young.
+o LANG-1364: ExceptionUtils#getRootCause(Throwable t) should return t if no lower level cause exists Thanks to Zheng Xie.
+o LANG-1060: NumberUtils.isNumber assumes number starting with Zero Thanks to Piotr Kosmala.
+o LANG-1375: defaultString(final String str) in StringUtils to reuse defaultString(final String str, final String defaultStr) Thanks to Jerry Zhao.
+o LANG-1374: Parsing Json Array failed Thanks to Jaswanth Bala.
+o LANG-1371: Fix TypeUtils#parameterize to work correctly with narrower-typed array Thanks to Dmitry Ovchinnikov.
+o LANG-1370: Fix EventCountCircuitBreaker increment batch Thanks to Andre Dieb.
+o LANG-1385: NumberUtils.createNumber() throws StringIndexOutOfBoundsException instead of NumberFormatException Thanks to Rohan Padhye.
+o LANG-1397: WordUtils.wrap throws StringIndexOutOfBoundsException when wrapLength is Integer.MAX_VALUE. Thanks to Takanobu Asanuma.
+o LANG-1401: Typo in JavaDoc for lastIndexOf Thanks to Roman Golyshev, Alex Mamedov.
+
+Changes:
+o LANG-1367: ObjectUtils.identityToString(Object) and friends should allocate builders and buffers with a size Thanks to Gary Gregory.
+o LANG-1405: Remove checks for java versions below the minimum supported one Thanks to Lars Grefer.
+o LANG-1402: Null/index safe get methods for ArrayUtils Thanks to Mark Dacek.
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.7
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.7 version of Apache Commons Lang.
+Commons Lang is a set of utility functions and reusable components that should be of use in any
+Java environment.
+
+Lang 3.0 and onwards now targets Java 5.0, making use of features that arrived with Java 5.0 such as generics,
+variable arguments, autoboxing, concurrency and formatted output.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+Apache Commons Lang, a package of Java utility classes for the
+classes that are in java.lang's hierarchy, or are considered to be so
+standard as to justify existence in java.lang.
+
+New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.
+
+Changes in this version include:
+
+New features:
+o LANG-1355: TimeZone.getTimeZone() in FastDateParser causes resource contention (PR #296.) Thanks to Chas Honton.
+o LANG-1360: Add methods to ObjectUtils to get various forms of class names in a null-safe manner Thanks to Gary Gregory.
+
+Fixed Bugs:
+o LANG-1362: Fix tests DateUtilsTest for Java 9 with en_GB locale Thanks to Stephen Colebourne.
+o LANG-1365: Fix NullPointerException in isJavaVersionAtLeast on Java 10, add SystemUtils.IS_JAVA_10, add JavaVersion.JAVA_10 Thanks to Gary Gregory.
+o LANG-1348: StackOverflowError on TypeUtils.toString(...) for a generic return type of Enum.valueOf Thanks to mbusso.
+o LANG-1350: ConstructorUtils.invokeConstructor(Class, Object...) regression Thanks to Brett Kail.
+o LANG-1349: EqualsBuilder#isRegistered: swappedPair construction bug Thanks to Naman Nigam.
+o LANG-1357: org.apache.commons.lang3.time.FastDateParser should use toUpperCase(Locale) Thanks to BruceKuiLiu.
+
+Changes:
+o LANG-1358: Improve StringUtils#replace throughput Thanks to Stephane Landelle.
+o LANG-1346: Remove deprecation from RandomStringUtils
+o LANG-1361: ExceptionUtils.getThrowableList() is using deprecated ExceptionUtils.getCause() Thanks to Ana.
+
+
+=============================================================================
+
+ Apache Commons Lang
+ Version 3.6
+ Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 3.6 version of
+Apache Commons Lang as well as a history all changes in the Commons Lang 3.x
+release line. Commons Lang is a set of utility functions and reusable
+components that should be of use in any Java environment. Commons Lang 3.6 at
+least requires Java 7.0. Note that this has changed from Commons Lang 3.5, which
+only required Java 1.6.
+
+For the advice on upgrading from 2.x to 3.x, see the following page:
+
+ https://commons.apache.org/lang/article3_0.html
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o The class org.apache.commons.lang3.concurrent.Memoizer is an implementation
+ of the Memoizer pattern as shown in
+ Goetz, Brian et al. (2006) - Java Concurrency in Practice, p. 108.
+o The class org.apache.commons.lang3.ArchUtils has been added. ArchUtils is
+ a utility class for the "os.arch" system property.
+
+DEPRECATIONS
+============
+
+The Apache Commons Community has recently set up the Commons Text component
+as a home for algorithms working on strings. For this reason most of the string
+focused functionality in Commons Lang has been deprecated and moved to
+Commons Text. This includes:
+
+o All classes in the org.apache.commons.lang3.text and the
+ org.apache.commons.lang3.text.translate packages
+o org.apache.commons.lang3.StringEscapeUtils
+o org.apache.commons.lang3.RandomStringUtils
+o The methods org.apache.commons.lang3.StringUtils.getJaroWinklerDistance and
+ org.apache.commons.lang3.StringUtils.getLevenshteinDistance
+
+For more information see the Commons Text website:
+
+ https://commons.apache.org/text
+
+The class org.apache.commons.lang3.CharEncoding has been deprecated in favor of
+java.nio.charset.StandardCharsets.
+
+The following methods have been deprecated in
+org.apache.commons.lang3.ArrayUtils in favor of the corresponding insert
+methods. Note that the handling for null inputs differs between add and insert.
+
+o add(boolean[], int, boolean) -> insert(int, boolean[], boolean...)
+o add(byte[], int, boolean) -> insert(int, byte[], byte...)
+o add(char[], int, boolean) -> insert(int, char[], char...)
+o add(double[], int, boolean) -> insert(int, double[], double...)
+o add(float[], int, boolean) -> insert(int, float[], float...)
+o add(int[], int, boolean) -> insert(int, int[], int...)
+o add(long[], int, boolean) -> insert(int, long[], long...)
+o add(short[], int, boolean) -> insert(int, short[], short...)
+o add(T[], int, boolean) -> insert(int, T[], T...)
+
+
+COMPATIBILITY WITH JAVA 9
+==================
+
+The MANIFEST.MF now contains an additional entry:
+
+ Automatic-Module-Name: org.apache.commons.lang3
+
+This should make it possible to use Commons Lang 3.6 as a module in the Java 9
+module system. For more information see the corresponding issue and the
+referenced mailing list discussions:
+
+ https://issues.apache.org/jira/browse/LANG-1338
+
+The build problems present in the 3.5 release have been resolved. Building
+Commons Lang 3.6 should work out of the box with the latest Java 9 EA build.
+Please report any Java 9 related issues at:
+
+ https://issues.apache.org/jira/browse/LANG
+
+NEW FEATURES
+============
+
+o LANG-1336: Add NUL Byte To CharUtils. Thanks to Beluga Behr.
+o LANG-1304: Add method in StringUtils to determine if string contains both
+ mixed cased characters. Thanks to Andy Klimczak.
+o LANG-1325: Increase test coverage of ToStringBuilder class to 100%.
+ Thanks to Arshad Basha.
+o LANG-1307: Add a method in StringUtils to extract only digits out of input
+ string. Thanks to Arshad Basha.
+o LANG-1256: Add JMH maven dependencies. Thanks to C0rWin.
+o LANG-1167: Add null filter to ReflectionToStringBuilder.
+ Thanks to Mark Dacek.
+o LANG-1299: Add method for converting string to an array of code points.
+o LANG-660: Add methods to insert arrays into arrays at an index.
+o LANG-1034: Add support for recursive comparison to
+ EqualsBuilder#reflectionEquals. Thanks to Yathos UG.
+o LANG-1067: Add a reflection-based variant of DiffBuilder.
+o LANG-740: Implementation of a Memoizer. Thanks to James Sawle.
+o LANG-1258: Add ArrayUtils#toStringArray method.
+ Thanks to IG, Grzegorz Ro?niecki.
+o LANG-1160: StringUtils#abbreviate should support 'custom ellipses' parameter.
+o LANG-1293: Add StringUtils#isAllEmpty and #isAllBlank methods.
+ Thanks to Pierre Templier, Martin Tarjanyi.
+o LANG-1313: Add ArchUtils - An utility class for the "os.arch" system property.
+ Thanks to Tomschi.
+o LANG-1272: Add shuffle methods to ArrayUtils.
+o LANG-1317: Add MethodUtils#findAnnotation and extend
+ MethodUtils#getMethodsWithAnnotation for non-public, super-class
+ and interface methods. Thanks to Yasser Zamani.
+o LANG-1331: Add ImmutablePair.nullPair().
+o LANG-1332: Add ImmutableTriple.nullTriple().
+
+FIXED BUGS
+==========
+
+o LANG-1337: Fix test failures in IBM JDK 8 for ToStringBuilderTest.
+o LANG-1319: MultilineRecursiveToStringStyle StackOverflowError when object is
+ an array.
+o LANG-1320: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code followed by variant.
+o LANG-1300: Clarify or improve behavior of int-based indexOf methods in
+ StringUtils. Thanks to Mark Dacek.
+o LANG-1286: RandomStringUtils random method can overflow and return characters
+ outside of specified range.
+o LANG-1292: WordUtils.wrap throws StringIndexOutOfBoundsException.
+o LANG-1287: RandomStringUtils#random can enter infinite loop if end parameter
+ is to small. Thanks to Ivan Morozov.
+o LANG-1285: NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to Francesco Chicchiriccň.
+o LANG-1281: Javadoc of StringUtils.ordinalIndexOf is contradictory.
+ Thanks to Andreas Lundblad.
+o LANG-1188: StringUtils#join(T...): warning: [unchecked] Possible heap
+ pollution from parameterized vararg type T.
+o LANG-1144: Multiple calls of
+ org.apache.commons.lang3.concurrent.LazyInitializer.initialize()
+ are possible. Thanks to Waldemar Maier, Gary Gregory.
+o LANG-1276: StrBuilder#replaceAll ArrayIndexOutOfBoundsException.
+ Thanks to Andy Klimczak.
+o LANG-1278: BooleanUtils javadoc issues. Thanks to Duke Yin.
+o LANG-1070: ArrayUtils#add confusing example in javadoc.
+ Thanks to Paul Pogonyshev.
+o LANG-1271: StringUtils#isAnyEmpty and #isAnyBlank should return false for an
+ empty array. Thanks to Pierre Templier.
+o LANG-1155: Add StringUtils#unwrap. Thanks to Saif Asif, Thiago Andrade.
+o LANG-1311: TypeUtils.toString() doesn't handle primitive and Object arrays
+ correctly. Thanks to Aaron Digulla.
+o LANG-1312: LocaleUtils#toLocale does not support language followed by UN M.49
+ numeric-3 area code.
+o LANG-1265: Build failures when building with Java 9 EA.
+o LANG-1314: javadoc creation broken with Java 8. Thanks to Allon Murienik.
+o LANG-1310: MethodUtils.invokeMethod throws ArrayStoreException if using
+ varargs arguments and smaller types than the method defines.
+ Thanks to Don Jeba.
+
+CHANGES
+=======
+
+o LANG-1338: Add Automatic-Module-Name MANIFEST entry for Java 9
+ compatibility.
+o LANG-1334: Deprecate CharEncoding in favour of
+ java.nio.charset.StandardCharsets.
+o LANG-1110: Implement HashSetvBitSetTest using JMH.
+ Thanks to Bruno P. Kinoshita.
+o LANG-1290: Increase test coverage of org.apache.commons.lang3.ArrayUtils.
+ Thanks to Andrii Abramov.
+o LANG-1274: StrSubstitutor should state its thread safety.
+o LANG-1277: StringUtils#getLevenshteinDistance reduce memory consumption.
+ Thanks to yufcuy.
+o LANG-1279: Update Java requirement from Java 6 to 7.
+o LANG-1143: StringUtils should use toXxxxCase(int) rather than
+ toXxxxCase(char). Thanks to sebb.
+o LANG-1297: Add SystemUtils.getHostName() API.
+o LANG-1301: Moving apache-rat-plugin configuration into pluginManagement.
+ Thanks to Karl Heinz Marbaise.
+o LANG-1316: Deprecate classes/methods moved to commons-text.
+
+=============================================================================
+
+ Release Notes for version 3.5
+
+
+HIGHLIGHTS
+==========
+
+Some of the highlights in this release include:
+
+o Added Java 9 detection to org.apache.commons.lang3.SystemUtils.
+o Support for shifting and swapping elements in
+ org.apache.commons.lang3.ArrayUtils.
+o New methods for generating random strings from different character classes
+ including alphabetic, alpha-numeric and ASCII added to
+ org.apache.commons.lang3.RandomStringUtils.
+o Numerous extensions to org.apache.commons.lang3.StringUtils including
+ null safe compare variants, more remove and replace variants, rotation and
+ truncation.
+o Added org.apache.commons.lang3.ThreadUtils - a utility class to work with
+ instances of java.lang.Thread and java.lang.ThreadGroup.
+o Added annotations @EqualsExclude, @HashCodeExclude and @ToStringExclude to
+ mark fields which should be ignored by the reflective builders in the
+ org.apache.commons.lang3.builder package.
+o Support for various modify and retrieve value use cases added to the classes
+ in org.apache.commons.lang3.mutable.
+
+COMPATIBILITY
+=============
+
+Apache Commons Lang 3.5 is binary compatible with the 3.4 release. Users
+should not experience any problems when upgrading from 3.4 to 3.5.
+
+There has been an addition to the org.apache.commons.lang3.time.DatePrinter
+interface:
+
+o Added method 'public boolean parse(java.lang.String, java.text.ParsePosition,
+ java.util.Calendar)'
+o Added method 'public java.lang.Appendable format(long, java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Date,
+ java.lang.Appendable)'
+o Added method 'public java.lang.Appendable format(java.util.Calendar,
+ java.lang.Appendable)'
+
+For this reason 3.5 is not strictly source compatible to 3.4. Since the
+DatePrinter interface is not meant to be implemented by clients, this
+change it not considered to cause any problems.
+
+JAVA 9 SUPPORT
+==============
+
+Java 9 introduces a new version-string scheme. Details of this new scheme are
+documented in JEP-223 (https://openjdk.org/jeps/223). In order to support
+JEP-223 two classes had to be changed:
+
+o org.apache.commons.lang3.JavaVersion
+ deprecated enum constant JAVA_1_9
+ introduced enum constant JAVA_9
+
+o org.apache.commons.lang3.SystemUtils
+ deprecated constant IS_JAVA_1_9
+ introduced constant IS_JAVA_9
+
+For more information see LANG-1197
+(https://issues.apache.org/jira/browse/LANG-1197). All other APIs are expected
+to work with Java 9.
+
+BUILDING ON JAVA 9
+==================
+
+Java 8 introduced the Unicode Consortium's Common Locale Data Repository as
+alternative source for locale data. Java 9 will use the CLDR provider as
+default provider for locale data (see https://openjdk.org/jeps/252). This
+causes an number of locale-sensitive test in Commons Lang to fail. In order
+to build Commons Lang 3.5 on Java 9, the locale provider has to be set to
+'JRE':
+
+ mvn -Djava.locale.providers=JRE clean install
+
+We are currently investigating ways to support building on Java 9 without
+further configuration. For more information see:
+https://issues.apache.org/jira/browse/LANG-1265
+
+
+NEW FEATURES
+==============
+
+o LANG-1275: Added a tryAcquire() method to TimedSemaphore.
+o LANG-1255: Add DateUtils.toCalendar(Date, TimeZone). Thanks to Kaiyuan Wang.
+o LANG-1023: Add WordUtils.wrap overload with customizable breakable character.
+ Thanks to Marko Bekhta.
+o LANG-787: Add method removeIgnoreCase(String, String) to StringUtils. Thanks
+ to Gokul Nanthakumar C.
+o LANG-1224: Extend RandomStringUtils with methods that generate strings
+ between a min and max length. Thanks to Caleb Cushing.
+o LANG-1257: Add APIs StringUtils.wrapIfMissing(String, char|String). Thanks to
+ Gary Gregory.
+o LANG-1253: Add RandomUtils#nextBoolean() method. Thanks to adilek.
+o LANG-1085: Add a circuit breaker implementation. Thanks to Oliver Heger and
+ Bruno P. Kinoshita.
+o LANG-1013: Add StringUtils.truncate(). Thanks to Thiago Andrade.
+o LANG-1195: Enhance MethodUtils to allow invocation of private methods. Thanks
+ to Derek C. Ashmore.
+o LANG-1189: Add getAndIncrement/getAndDecrement/getAndAdd/incrementAndGet/
+ decrementAndGet/addAndGet in Mutable* classes. Thanks to
+ Haiyang Li and Matthew Bartenschlag.
+o LANG-1225: Add RandomStringUtils#randomGraph and #randomPrint which match
+ corresponding regular expression class. Thanks to Caleb Cushing.
+o LANG-1223: Add StopWatch#getTime(TimeUnit). Thanks to Nick Manley.
+o LANG-781: Add methods to ObjectUtils class to check for null elements in the
+ array. Thanks to Krzysztof Wolny.
+o LANG-1228: Prefer Throwable.getCause() in ExceptionUtils.getCause().
+ Thanks to Brad Hess.
+o LANG-1233: DiffBuilder add method to allow appending from a DiffResult.
+ Thanks to Nick Manley.
+o LANG-1168: Add SystemUtils.IS_OS_WINDOWS_10 property.
+ Thanks to Pascal Schumacher.
+o LANG-1115: Add support for varargs in ConstructorUtils, MemberUtils, and
+ MethodUtils. Thanks to Jim Lloyd and Joe Ferner.
+o LANG-1134: Add methods to check numbers against NaN and infinite to
+ Validate. Thanks to Alan Smithee.
+o LANG-1220: Add tests for missed branches in DateUtils.
+ Thanks to Casey Scarborough.
+o LANG-1146: z/OS identification in SystemUtils.
+ Thanks to Gabor Liptak.
+o LANG-1192: FastDateFormat support of the week-year component (uppercase 'Y').
+ Thanks to Dominik Stadler.
+o LANG-1169: Add StringUtils methods to compare a string to multiple strings.
+ Thanks to Rafal Glowinski, Robert Parr and Arman Sharif.
+o LANG-1185: Add remove by regular expression methods in StringUtils.
+o LANG-1139: Add replace by regular expression methods in StringUtils.
+o LANG-1171: Add compare methods in StringUtils.
+o LANG-1174: Add sugar to RandomUtils. Thanks to Punkratz312.
+o LANG-1154: FastDateFormat APIs that use a StringBuilder. Thanks to
+ Gary Gregory.
+o LANG-1149: Ability to throw checked exceptions without declaring them. Thanks
+ to Gregory Zak.
+o LANG-1153: Implement ParsePosition api for FastDateParser.
+o LANG-1137: Add check for duplicate event listener in EventListenerSupport.
+ Thanks to Matthew Aguirre.
+o LANG-1135: Add method containsAllWords to WordUtils. Thanks to
+ Eduardo Martins.
+o LANG-1132: ReflectionToStringBuilder doesn't throw IllegalArgumentException
+ when the constructor's object param is null. Thanks to Jack Tan.
+o LANG-701: StringUtils join with var args. Thanks to James Sawle.
+o LANG-1105: Add ThreadUtils - A utility class which provides helper methods
+ related to java.lang.Thread Issue: LANG-1105. Thanks to
+ Hendrik Saly.
+o LANG-1031: Add annotations to exclude fields from ReflectionEqualsBuilder,
+ ReflectionToStringBuilder and ReflectionHashCodeBuilder. Thanks
+ to Felipe Adorno.
+o LANG-1127: Use JUnit rules to set and reset the default Locale and TimeZone.
+o LANG-1119: Add rotate(string, int) method to StringUtils. Thanks to
+ Loic Guibert.
+o LANG-1099: Add swap and shift operations for arrays to ArrayUtils. Thanks to
+ Adrian Ber.
+o LANG-1050: Change nullToEmpty methods to generics. Thanks to James Sawle.
+o LANG-1074: Add a method to ArrayUtils for removing all occurrences of a given
+ element Issue: LANG-1074. Thanks to Haiyang Li.
+
+FIXED BUGS
+============
+
+o LANG-1261: ArrayUtils.contains returns false for instances of subtypes.
+o LANG-1252: Rename NumberUtils.isNumber, isCreatable to better reflect
+ createNumber. Also, accommodated for "+" symbol as prefix in
+ isCreatable and isNumber. Thanks to Rob Tompkins.
+o LANG-1230: Remove unnecessary synchronization from registry lookup in
+ EqualsBuilder and HashCodeBuilder. Thanks to Philippe Marschall.
+o LANG-1214: Handle "void" in ClassUtils.getClass(). Thanks to Henry Tung.
+o LANG-1250: SerializationUtils#deserialize has unnecessary code and a comment
+ for that. Thanks to Glease Wang.
+o LANG-1190: TypeUtils.isAssignable throws NullPointerException when fromType
+ has type variables and toType generic superclass specifies type
+ variable. Thanks to Pascal Schumacher.
+o LANG-1226: StringUtils#normalizeSpace does not trim the string anymore.
+ Thanks to Pascal Schumacher.
+o LANG-1251: SerializationUtils.ClassLoaderAwareObjectInputStream should use
+ static initializer to initialize primitiveTypes map. Thanks to
+ Takuya Ueshin.
+o LANG-1248: FastDatePrinter Memory allocation regression. Thanks to
+ Benoit Wiart.
+o LANG-1018: Fix precision loss on NumberUtils.createNumber(String). Thanks to
+ Nick Manley.
+o LANG-1199: Fix implementation of StringUtils.getJaroWinklerDistance(). Thanks
+ to M. Steiger.
+o LANG-1244: Fix dead links in StringUtils.getLevenshteinDistance() javadoc.
+ Thanks to jjbankert.
+o LANG-1242: "\u2284":"?" mapping missing from
+ EntityArrays#HTML40_EXTENDED_ESCAPE. Thanks to Neal Stewart.
+o LANG-901: StringUtils#startsWithAny/endsWithAny is case sensitive -
+ documented as case insensitive. Thanks to Matthew Bartenschlag.
+o LANG-1232: DiffBuilder: Add null check on fieldName when appending Object or
+ Object[]. Thanks to Nick Manley.
+o LANG-1178: ArrayUtils.removeAll(Object array, int... indices) should do the
+ clone, not its callers. Thanks to Henri Yandell.
+o LANG-1120: StringUtils.stripAccents should remove accents from "?" and "?".
+ Thanks to kaching88.
+o LANG-1205: NumberUtils.createNumber() behaves inconsistently with
+ NumberUtils.isNumber(). Thanks to pbrose.
+o LANG-1222: Fix for incorrect comment on StringUtils.containsIgnoreCase
+ method. Thanks to Adam J.
+o LANG-1221: Fix typo on appendIfMissing javadoc. Thanks to Pierre Templier.
+o LANG-1202: parseDateStrictly doesn't pass specified locale. Thanks to
+ Markus Jelsma.
+o LANG-1219: FastDateFormat doesn't respect summer daylight in some localized
+ strings. Thanks to Jarek.
+o LANG-1175: Remove Ant-based build.
+o LANG-1194: Limit max heap memory for consistent Travis CI build.
+o LANG-1186: Fix NullPointerException in FastDateParser$TimeZoneStrategy.
+ Thanks to NickManley.
+o LANG-1193: ordinalIndexOf("abc", "ab", 1) gives incorrect answer of -1
+ (correct answer should be 0); revert fix for LANG-1077. Thanks to
+ Qin Li.
+o LANG-1002: Several predefined ISO FastDateFormats in DateFormatUtils are
+ incorrect. Thanks to Michael Osipov.
+o LANG-1152: StringIndexOutOfBoundsException or field over-write for large year
+ fields in FastDateParser. Thanks to Pas Filip.
+o LANG-1141: StrLookup.systemPropertiesLookup() no longer reacts on changes on
+ system properties.
+o LANG-1147: EnumUtils *BitVector issue with more than 32 values Enum. Thanks
+ to Loic Guibert.
+o LANG-1059: Capitalize javadoc is incorrect. Thanks to Colin Casey.
+o LANG-1122: Inconsistent behavior of swap for malformed inputs. Thanks to
+ Adrian Ber.
+o LANG-1130: Fix critical issues reported by SonarQube.
+o LANG-1131: StrBuilder.equals(StrBuilder) doesn't check for null inputs.
+o LANG-1128: JsonToStringStyle doesn't handle chars and objects correctly.
+ Thanks to Jack Tan.
+o LANG-1126: DateFormatUtilsTest.testSMTP depends on the default Locale.
+o LANG-1123: Unit test FastDatePrinterTimeZonesTest needs a timezone set.
+ Thanks to Christian P. Momon.
+o LANG-916: DateFormatUtils.format does not correctly change Calendar
+ TimeZone in certain situations. Thanks to Christian P. Momon.
+o LANG-1116: DateUtilsTest.testLang530 fails for some timezones. Thanks to
+ Aaron Sheldon.
+o LANG-1114: TypeUtils.ParameterizedType#equals doesn't work with wildcard
+ types. Thanks to Andy Coates.
+o LANG-1118: StringUtils.repeat('z', -1) throws NegativeArraySizeException.
+ Thanks to Loic Guibert.
+o LANG-1111: Fix FindBugs warnings in DurationFormatUtils.
+o LANG-1162: StringUtils#equals fails with Index OOBE on non-Strings with
+ identical leading prefix..
+o LANG-1163: There are no tests for CharSequenceUtils.regionMatches.
+o LANG-1200: Fix Javadoc of StringUtils.ordinalIndexOf. Thanks to BarkZhang.
+o LANG-1191: Incorrect Javadoc
+ StringUtils.containsAny(CharSequence, CharSequence...). Thanks to
+ qed, Brent Worden and Gary Gregory.
+
+CHANGES
+=========
+o LANG-1197: Prepare Java 9 detection.
+o LANG-1262: CompareToBuilder.append(Object, Object, Comparator) method is too
+ big to be inlined. Thanks to Ruslan Cheremin.
+o LANG-1259: Javadoc for ArrayUtils.isNotEmpty() is slightly misleading. Thanks
+ to Dominik Stadler.
+o LANG-1247: FastDatePrinter generates extra Date objects. Thanks to
+ Benoit Wiart.
+o LANG-1229: HashCodeBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1243: Simplify ArrayUtils removeElements by using new decrementAndGet()
+ method.
+o LANG-1240: Optimize BitField constructor implementation. Thanks to zhanhb.
+o LANG-1206: Improve CharSetUtils.squeeze() performance. Thanks to
+ Mohammed Alfallaj.
+o LANG-1176: Improve ArrayUtils removeElements time complexity to O(n). Thanks
+ to Jeffery Yuan.
+o LANG-1234: getLevenshteinDistance with a threshold: optimize implementation
+ if the strings lengths differ more than the threshold. Thanks to
+ Jonatan Jönsson.
+o LANG-1151: Performance improvements for NumberUtils.isParsable. Thanks to
+ Juan Pablo Santos Rodríguez.
+o LANG-1218: EqualsBuilder.append(Object,Object) is too big to be inlined,
+ which prevents whole builder to be scalarized. Thanks to
+ Ruslan Cheremin.
+o LANG-1210: StringUtils#startsWithAny has error in Javadoc. Thanks to
+ Matthias Niehoff.
+o LANG-1208: StrSubstitutor can preserve escapes. Thanks to Samuel Karp.
+o LANG-1182: Clarify Javadoc of StringUtils.containsAny(). Thanks to
+ Larry West and Pascal Schumacher.
+o LANG-1183: Making replacePattern/removePattern methods null safe in
+ StringUtils.
+o LANG-1057: Replace StringBuilder with String concatenation for better
+ optimization. Thanks to Otávio Santana.
+o LANG-1075: Deprecate SystemUtils.FILE_SEPARATOR and
+ SystemUtils.PATH_SEPARATOR.
+o LANG-979: TypeUtils.parameterizeWithOwner - wrong format descriptor for
+ "invalid number of type parameters". Thanks to Bruno P. Kinoshita.
+o LANG-1112: MultilineRecursiveToStringStyle largely unusable due to being
+ package-private.
+o LANG-1058: StringUtils.uncapitalize performance improvement. Thanks to
+ Leo Wang.
+o LANG-1069: CharSet.getInstance documentation does not clearly explain how
+ to include negation character in set. Thanks to Arno Noordover.
+o LANG-1107: Fix parsing edge cases in FastDateParser.
+o LANG-1273: Added new property IS_OS_MAC_OSX_EL_CAPITAN in SystemUtils. Thanks
+ to Jake Wang.
+
+=============================================================================
+
+ Release Notes for version 3.4
+
+
+COMPATIBILITY
+=============
+
+Commons Lang 3.4 is fully binary compatible to the last release and can
+therefore be used as a drop in replacement for 3.3.2. Note that the value of
+org.apache.commons.lang3.time.DurationFormatUtils.ISO_EXTENDED_FORMAT_PATTERN
+has changed, which may affect clients using the constant. Furthermore the
+constant is used internally in
+o DurationFormatUtils.formatDurationISO(long)
+o DurationFormatUtils.formatPeriodISO(long, long)
+
+For more information see https://issues.apache.org/jira/browse/LANG-1000.
+
+NEW FEATURES
+==============
+
+o LANG-821: Support OS X versions in SystemUtils. Thanks to Timo Kockert.
+o LANG-1103: Add SystemUtils.IS_JAVA_1_9
+o LANG-1093: Add ClassUtils.getAbbreviatedName(). Thanks to Fabian Lange.
+o LANG-1082: Add option to disable the "objectsTriviallyEqual" test in
+ DiffBuilder. Thanks to Jonathan Baker.
+o LANG-1015: Add JsonToStringStyle implementation to ToStringStyle. Thanks to
+ Thiago Andrade.
+o LANG-1080: Add NoClassNameToStringStyle implementation of ToStringStyle.
+ Thanks to Innokenty Shuvalov.
+o LANG-883: Add StringUtils.containsAny(CharSequence, CharSequence...) method.
+ Thanks to Daniel Stewart.
+o LANG-1052: Multiline recursive to string style. Thanks to Jan Matčrne.
+o LANG-536: Add isSorted() to ArrayUtils. Thanks to James Sawle.
+o LANG-1033: Add StringUtils.countMatches(CharSequence, char)
+o LANG-1021: Provide methods to retrieve all fields/methods annotated with a
+ specific type. Thanks to Alexander Müller.
+o LANG-1016: NumberUtils#isParsable method(s). Thanks to
+ Juan Pablo Santos Rodríguez.
+o LANG-999: Add fuzzy String matching logic to StringUtils. Thanks to
+ Ben Ripkens.
+o LANG-994: Add zero copy read method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-993: Add zero copy write method to StrBuilder. Thanks to
+ Mikhail Mazursky.
+o LANG-1044: Add method MethodUtils.invokeExactMethod(Object, String)
+o LANG-1045: Add method MethodUtils.invokeMethod(Object, String)
+
+FIXED BUGS
+============
+
+o LANG-794: SystemUtils.IS_OS_WINDOWS_2008, VISTA are incorrect. Thanks to
+ Timo Kockert.
+o LANG-1104: Parse test fails for TimeZone America/Sao_Paulo
+o LANG-948: Exception while using ExtendedMessageFormat and escaping braces.
+ Thanks to Andrey Khobnya.
+o LANG-1092: Wrong formatting of time zones with daylight saving time in
+ FastDatePrinter
+o LANG-1090: FastDateParser does not set error indication in ParsePosition
+o LANG-1089: FastDateParser does not handle excess hours as per
+ SimpleDateFormat
+o LANG-1061: FastDateParser error - timezones not handled correctly. Thanks to
+ dmeneses.
+o LANG-1087: NumberUtils#createNumber() returns positive BigDecimal when
+ negative Float is expected. Thanks to Renat Zhilkibaev.
+o LANG-1081: DiffBuilder.append(String, Object left, Object right) does not do
+ a left.equals(right) check. Thanks to Jonathan Baker.
+o LANG-1055: StrSubstitutor.replaceSystemProperties does not work consistently.
+ Thanks to Jonathan Baker.
+o LANG-1083: Add (T) casts to get unit tests to pass in old JDK. Thanks to
+ Jonathan Baker.
+o LANG-1073: Read wrong component type of array in add in ArrayUtils.
+ Thanks to haiyang li.
+o LANG-1077: StringUtils.ordinalIndexOf("aaaaaa", "aa", 2) != 3 in StringUtils.
+ Thanks to haiyang li.
+o LANG-1072: Duplicated "0x" check in createBigInteger in NumberUtils. Thanks
+ to haiyang li.
+o LANG-1064: StringUtils.abbreviate description doesn't agree with the
+ examples. Thanks to B.J. Herbison.
+o LANG-1041: Fix MethodUtilsTest so it does not depend on JDK method ordering.
+ Thanks to Alexandre Bartel.
+o LANG-1000: ParseException when trying to parse UTC dates with Z as zone
+ designator using DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT
+o LANG-1035: Javadoc for EqualsBuilder.reflectionEquals() is unclear
+o LANG-1001: ISO 8601 misspelled throughout the Javadocs. Thanks to
+ Michael Osipov.
+o LANG-1088: FastDateParser should be case insensitive
+o LANG-995: Fix bug with stripping spaces on last line in WordUtils.wrap().
+ Thanks to Andrey Khobnya.
+
+CHANGES
+=========
+
+o LANG-1102: Make logic for comparing OS versions in SystemUtils smarter
+o LANG-1091: Shutdown thread pools in test cases. Thanks to Fabian Lange.
+o LANG-1101: FastDateParser and FastDatePrinter support 'X' format
+o LANG-1100: Avoid memory allocation when using date formatting to StringBuffer.
+ Thanks to mbracher.
+o LANG-935: Possible performance improvement on string escape functions.
+ Thanks to Fabian Lange, Thomas Neidhart.
+o LANG-1098: Avoid String allocation in StrBuilder.append(CharSequence). Thanks
+ to Mikhail Mazurskiy, Fabian Lange.
+o LANG-1098: Update maven-checkstyle-plugin to 2.14. Thanks to Micha? Kordas.
+o LANG-1097: Update org.easymock:easymock to 3.3.1. Thanks to Micha? Kordas.
+o LANG-1096: Update maven-pmd-plugin to 3.4. Thanks to Micha? Kordas.
+o LANG-1095: Update maven-antrun-plugin to 1.8. Thanks to Micha? Kordas.
+o LANG-877: Performance improvements for StringEscapeUtils. Thanks to
+ Fabian Lange.
+o LANG-1071: Fix wrong examples in Javadoc of
+ StringUtils.replaceEachRepeatedly(...),
+ StringUtils.replaceEach(...) Thanks to Arno Noordover.
+o LANG-827: CompareToBuilder's doc doesn't specify precedence of fields it
+ uses in performing comparisons
+o LANG-1020: Improve performance of normalize space. Thanks to Libor Ondrusek.
+o LANG-1027: org.apache.commons.lang3.SystemUtils#isJavaVersionAtLeast should
+ return true by default
+o LANG-1026: Bring static method references in StringUtils to consistent style.
+ Thanks to Alex Yursha.
+o LANG-1017: Use non-ASCII digits in Javadoc examples for
+ StringUtils.isNumeric. Thanks to Christoph Schneegans.
+o LANG-1008: Change min/max methods in NumberUtils/IEEE754rUtils from array
+ input parameters to varargs. Thanks to Thiago Andrade.
+o LANG-1006: Add wrap (with String or char) to StringUtils. Thanks to
+ Thiago Andrade.
+o LANG-1005: Extend DurationFormatUtils#formatDurationISO default pattern to
+ match #formatDurationHMS. Thanks to Michael Osipov.
+o LANG-1007: Fixing NumberUtils JAVADoc comments for max methods. Thanks to
+ Thiago Andrade.
+o LANG-731: Better Javadoc for BitField class
+o LANG-1004: DurationFormatUtils#formatDurationHMS implementation does not
+ correspond to Javadoc and vice versa. Thanks to Michael Osipov.
+o LANG-1003: DurationFormatUtils are not able to handle negative
+ durations/periods
+o LANG-998: Javadoc is not clear on preferred pattern to instantiate
+ FastDateParser / FastDatePrinter
+
+=============================================================================
+
+ Release Notes for version 3.3.2
+
+NEW FEATURES
+==============
+
+o LANG-989: Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8
+
+FIXED BUGS
+============
+
+o LANG-992: NumberUtils#isNumber() returns false for "0.0", "0.4790", et al
+
+=============================================================================
+
+ Release Notes for version 3.3.1
+
+FIXED BUGS
+============
+
+o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong
+ days
+o LANG-983: DurationFormatUtils does not describe format string fully
+o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote char
+o LANG-984: DurationFormatUtils does not handle large durations correctly
+o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field
+ size should be 4 digits
+o LANG-978: Failing tests with Java 8 b128
+
+=============================================================================
+
+ Release Notes for version 3.3
+
+NEW FEATURES
+==============
+
+o LANG-955: Add methods for removing all invalid characters according to
+ XML 1.0 and XML 1.1 in an input string to StringEscapeUtils.
+ Thanks to Adam Hooper.
+o LANG-970: Add APIs MutableBoolean setTrue() and setFalse()
+o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) to
+ serialize then deserialize
+o LANG-637: There should be a DifferenceBuilder with a
+ ReflectionDifferenceBuilder implementation
+o LANG-944: Add the Jaro-Winkler string distance algorithm to StringUtils.
+ Thanks to Rekha Joshi.
+o LANG-417: New class ClassPathUtils with methods for turning FQN into
+ resource path
+o LANG-834: Validate: add inclusiveBetween and exclusiveBetween overloads
+ for primitive types
+o LANG-900: New RandomUtils class. Thanks to Duncan Jones.
+o LANG-966: Add IBM OS/400 detection
+
+FIXED BUGS
+============
+
+o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd party object
+ fields within 3rd party object. Thanks to Philip Hodges,
+ Thomas Neidhart.
+o LANG-977: NumericEntityEscaper incorrectly encodes supplementary characters.
+ Thanks to Chris Karcher.
+o LANG-973: Make some private fields final
+o LANG-971: NumberUtils#isNumber(String) fails to reject invalid Octal numbers
+o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD
+o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly throws
+ UnsupportedEncodingException. Thanks to Matt Bishop.
+o LANG-946: ConstantInitializerTest fails when building with IBM JDK 7
+o LANG-954: uncaught PatternSyntaxException in FastDateFormat on Android.
+ Thanks to Michael Keppler.
+o LANG-936: StringUtils.getLevenshteinDistance with too big of a threshold
+ returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey.
+o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in
+ JDK 1.6, 1.7 and 1.8, BRST time zone
+o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not Check the
+ Accessibility of Enclosing Classes
+o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or MONTH.
+ Thanks to Sebastian Götz.
+o LANG-950: FastDateParser does not handle two digit year parsing like
+ SimpleDateFormat
+o LANG-949: FastDateParserTest.testParses does not test FastDateParser
+o LANG-915: Wrong locale handling in LocaleUtils.toLocale().
+ Thanks to Sergio Fernández.
+
+CHANGES
+=========
+
+o LANG-961: org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
+ does not clean up after itself
+o LANG-958: FastDateParser javadoc incorrectly states that SimpleDateFormat
+ is used internally
+o LANG-956: Improve Javadoc of WordUtils.wrap methods
+o LANG-939: Move Documentation from user guide to package-info files
+o LANG-953: Convert package.html files to package-info.java files
+o LANG-940: Fix deprecation warnings
+o LANG-819: EnumUtils.generateBitVector needs a "? extends"
+
+=============================================================================
+
+ Release Notes for version 3.2.1
+
+BUG FIXES
+===========
+
+o LANG-937: Fix missing Hamcrest dependency in Ant Build
+o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8
+o LANG-942: Test failure in FastDateParserTest and FastDateFormat_ParserTest
+ when building with JDK8. Thanks to Bruno P. Kinoshita,
+ Henri Yandell.
+o LANG-938: Build fails with test failures when building with JDK 8
+
+=============================================================================
+
+ Release Notes for version 3.2
+
+COMPATIBILITY WITH 3.1
+========================
+
+This release introduces backwards incompatible changes in
+org.apache.commons.lang3.time.FastDateFormat:
+o Method 'protected java.util.List parsePattern()' has been removed
+o Method 'protected java.lang.String parseToken(java.lang.String, int[])' has
+ been removed
+o Method 'protected org.apache.commons.lang3.time.FastDateFormat$NumberRule
+ selectNumberRule(int, int)' has been removed
+
+These changes were the result of [LANG-462]. It is assumed that this change
+will not break clients as Charles Honton pointed out on 25/Jan/12:
+"
+ 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and
+ "List<Rule> parsePattern()" couldn't have been overridden because
+ NumberRule and Rule were private to FastDateFormat.
+ 2. Due to the factory pattern used, it's unlikely other two methods would have
+ been overridden.
+ 3. The four methods are highly implementation specific. I consider it a
+ mistake that the methods were exposed.
+"
+For more information see https://issues.apache.org/jira/browse/LANG-462.
+
+NEW FEATURES
+==============
+
+o LANG-934: Add removeFinalModifier to FieldUtils
+o LANG-863: Method returns number of inheritance hops between parent and
+ subclass. Thanks to Daneel S. Yaitskov.
+o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch.
+ Thanks to Erhan Bagdemir.
+o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... methods.
+ Thanks to Alexander Muthmann.
+o LANG-926: Added ArrayUtils.reverse(array, from, to) methods.
+o LANG-795: StringUtils.toString(byte[], String) deprecated in favour of a new
+ StringUtils.toString(byte[], CharSet). Thanks to Aaron Digulla.
+o LANG-893: StrSubstitutor now supports default values for variables.
+ Thanks to Woonsan Ko.
+o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon Mureinik.
+o LANG-837: Add ObjectUtils.toIdentityString methods that support
+ StringBuilder, StrBuilder, and Appendable.
+o LANG-886: Added CharSetUtils.containsAny(String, String).
+o LANG-797: Added escape/unescapeJson to StringEscapeUtils.
+o LANG-875: Added appendIfMissing and prependIfMissing methods to StringUtils.
+o LANG-870: Add StringUtils.LF and StringUtils.CR values.
+o LANG-873: Add FieldUtils getAllFields() to return all the fields defined in
+ the given class and super classes.
+o LANG-835: StrBuilder should support StringBuilder as an input parameter.
+o LANG-857: StringIndexOutOfBoundsException in CharSequenceTranslator.
+o LANG-856: Code refactoring in NumberUtils.
+o LANG-855: NumberUtils#createBigInteger does not allow for hex and octal
+ numbers.
+o LANG-854: NumberUtils#createNumber - does not allow for hex numbers to be
+ larger than Long.
+o LANG-853: StringUtils join APIs for primitives.
+o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL a.k.a.
+ single-line mode.
+o LANG-825: Create StrBuilder APIs similar to
+ String.format(String, Object...).
+o LANG-675: Add Triple class (ternary version of Pair).
+o LANG-462: FastDateFormat supports parse methods.
+
+BUG FIXES
+===========
+
+o LANG-932: Spelling fixes. Thanks to Ville Skyttä.
+o LANG-929: OctalUnescaper tried to parse all of \279.
+o LANG-928: OctalUnescaper had bugs when parsing octals starting with a zero.
+o LANG-905: EqualsBuilder returned true when comparing arrays, even when the
+ elements are different.
+o LANG-917: Fixed exception when combining custom and choice format in
+ ExtendedMessageFormat. Thanks to Arne Burmeister.
+o LANG-902: RandomStringUtils.random javadoc was incorrectly promising letters
+ and numbers would, as opposed to may, appear Issue:. Thanks to
+ Andrzej Winnicki.
+o LANG-921: BooleanUtils.xor(boolean...) produces wrong results.
+o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not updated. Thanks
+ to Mark Bryan Yu.
+o LANG-879: LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese"
+ of JDK7.
+o LANG-836: StrSubstitutor does not support StringBuilder or CharSequence.
+ Thanks to Arnaud Brunet.
+o LANG-693: Method createNumber from NumberUtils doesn't work for floating
+ point numbers other than Float Issue: LANG-693. Thanks to
+ Calvin Echols.
+o LANG-887: FastDateFormat does not use the locale specific cache correctly.
+o LANG-754: ClassUtils.getShortName(String) will now only do a reverse lookup
+ for array types.
+o LANG-881: NumberUtils.createNumber() Javadoc says it does not work for octal
+ numbers.
+o LANG-865: LocaleUtils.toLocale does not parse strings starting with an
+ underscore.
+o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do not
+ output the escaped surrogate pairs that are Java parsable.
+o LANG-849: FastDateFormat and FastDatePrinter generates Date objects
+ wastefully.
+o LANG-845: Spelling fixes.
+o LANG-844: Fix examples contained in javadoc of StringUtils.center methods.
+o LANG-832: FastDateParser does not handle unterminated quotes correctly.
+o LANG-831: FastDateParser does not handle white-space properly.
+o LANG-830: FastDateParser could use \Q \E to quote regexes.
+o LANG-828: FastDateParser does not handle non-Gregorian calendars properly.
+o LANG-826: FastDateParser does not handle non-ASCII digits correctly.
+o LANG-822: NumberUtils#createNumber - bad behavior for leading "--".
+o LANG-818: FastDateFormat's "z" pattern does not respect timezone of Calendar
+ instances passed to format().
+o LANG-817: Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8.
+o LANG-813: StringUtils.equalsIgnoreCase doesn't check string reference
+ equality.
+o LANG-810: StringUtils.join() endIndex, bugged for loop.
+o LANG-807: RandomStringUtils throws confusing IAE when end <= start.
+o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, universe,
+ random) always throws java.lang.ArrayIndexOutOfBoundsException.
+o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid class.
+o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object versions.
+o LANG-788: SerializationUtils throws ClassNotFoundException when cloning
+ primitive classes.
+o LANG-786: StringUtils equals() relies on undefined behavior.
+o LANG-783: Documentation bug: StringUtils.split.
+o LANG-777: jar contains velocity template of release notes.
+o LANG-776: TypeUtilsTest contains incorrect type assignability assertion.
+o LANG-775: TypeUtils.getTypeArguments() misses type arguments for
+ partially-assigned classes.
+o LANG-773: ImmutablePair doc contains nonsense text.
+o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text.
+o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer defines
+ serialVersionUID.
+o LANG-764: StrBuilder is now serializable.
+o LANG-761: Fix Javadoc Ant warnings.
+o LANG-747: NumberUtils does not handle Long Hex numbers.
+o LANG-743: Javadoc bug in static inner class DateIterator.
+
+CHANGES
+=========
+
+o LANG-931: Misleading Javadoc comment in StrBuilderReader class. Thanks
+ to Christoph Schneegans.
+o LANG-910: StringUtils.normalizeSpace now handles non-breaking spaces
+ (Unicode 00A0). Thanks to Timur Yarosh.
+o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks to
+ Allon Mureinik.
+o LANG-884: Simplify FastDateFormat; eliminate boxing.
+o LANG-882: LookupTranslator now works with implementations of CharSequence
+ other than String.
+o LANG-846: Provide CharSequenceUtils.regionMatches with a proper green
+ implementation instead of inefficiently converting to Strings.
+o LANG-839: ArrayUtils removeElements methods use unnecessary HashSet.
+o LANG-838: ArrayUtils removeElements methods clone temporary index arrays
+ unnecessarily.
+o LANG-799: DateUtils#parseDate uses default locale; add Locale support.
+o LANG-798: Use generics in SerializationUtils.
+
+CHANGES WITHOUT TICKET
+========================
+
+o Fixed URLs in javadoc to point to new oracle.com pages
+
+=============================================================================
+
+ Release Notes for version 3.1
+
+NEW FEATURES
+==============
+
+o LANG-801: Add Conversion utility to convert between data types on byte level
+o LANG-760: Add API StringUtils.toString(byte[] input, String charsetName)
+o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and
+ isPrimitiveOrWrapper(Class<?>)
+o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system
+
+BUG FIXES
+===========
+
+o LANG-749: Incorrect Bundle-SymbolicName in Manifest
+o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X
+o LANG-744: StringUtils throws java.security.AccessControlException on Google
+ App Engine
+o LANG-741: Ant build has wrong component.name
+o LANG-698: Document that the Mutable numbers don't work as expected with
+ String.format
+
+CHANGES
+=========
+
+o LANG-758: Add an example with whitespace in StringUtils.defaultIfEmpty
+o LANG-752: Fix createLong() so it behaves like createInteger()
+o LANG-751: Include the actual type in the Validate.isInstance and
+ isAssignableFrom exception messages
+o LANG-748: Deprecating chomp(String, String)
+o LANG-736: CharUtils static final array CHAR_STRING is not needed to compute
+ CHAR_STRING_ARRAY
+
+=============================================================================
+
+ Release Notes for version 3.0
+
+ADDITIONS
+===========
+
+o LANG-276: MutableBigDecimal and MutableBigInteger.
+o LANG-285: Wish : method unaccent.
+o LANG-358: ObjectUtils.coalesce.
+o LANG-386: LeftOf/RightOfNumber in Range convenience methods necessary.
+o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing.
+o LANG-444: StringUtils.emptyToNull.
+o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} expansion
+o LANG-482: StrSubstitutor now supports substitution in variable names.
+o LANG-496: A generic implementation of the Lazy initialization pattern.
+o LANG-497: Addition of ContextedException and ContextedRuntimeException.
+o LANG-498: Add StringEscapeUtils.escapeText() methods.
+o LANG-499: Add support for the handling of ExecutionExceptions.
+o LANG-501: Add support for background initialization.
+o LANG-529: Add a concurrent package.
+o LANG-533: Validate: support for validating blank strings.
+o LANG-537: Add ArrayUtils.toArray to create generic arrays.
+o LANG-545: Add ability to create a Future for a constant.
+o LANG-546: Add methods to Validate to check whether the index is valid for
+ the array/list/string.
+o LANG-553: Add TypeUtils class to provide utility code for working with generic
+ types.
+o LANG-559: Added isAssignableFrom and isInstanceOf validation methods.
+o LANG-559: Added validState validation method.
+o LANG-560: New TimedSemaphore class.
+o LANG-582: Provide an implementation of the ThreadFactory interface.
+o LANG-588: Create a basic Pair<L, R> class.
+o LANG-594: DateUtils equal & compare functions up to most significant field.
+o LANG-601: Add Builder Interface / Update Builders to Implement It.
+o LANG-609: Support lazy initialization using atomic variables
+o LANG-610: Extend exception handling in ConcurrentUtils to runtime exceptions.
+o LANG-614: StringUtils.endsWithAny method
+o LANG-640: Add normalizeSpace to StringUtils
+o LANG-644: Provide documentation about the new concurrent package
+o LANG-649: BooleanUtils.toBooleanObject to support single character input
+o LANG-651: Add AnnotationUtils
+o LANG-653: Provide a very basic ConcurrentInitializer implementation
+o LANG-655: Add StringUtils.defaultIfBlank()
+o LANG-667: Add a Null-safe compare() method to ObjectUtils
+o LANG-676: Documented potential NPE if auto-boxing occurs for some BooleanUtils
+ methods
+o LANG-678: Add support for ConcurrentMap.putIfAbsent()
+o LANG-692: Add hashCodeMulti varargs method
+o LANG-697: Add FormattableUtils class
+o LANG-684: Levenshtein Distance Within a Given Threshold
+
+REMOVALS
+==========
+
+o LANG-438: Remove @deprecateds.
+o LANG-492: Remove code handled now by the JDK.
+o LANG-493: Remove code that does not hold enough value to remain.
+o LANG-590: Remove JDK 1.2/1.3 bug handling in
+ StringUtils.indexOf(String, String, int).
+o LANG-673: WordUtils.abbreviate() removed
+o LANG-691: Removed DateUtils.UTC_TIME_ZONE
+
+IMPROVEMENTS
+==============
+
+o LANG-290: EnumUtils for JDK 5.0.
+o LANG-336: Finally start using generics.
+o LANG-355: StrBuilder should implement CharSequence and Appendable.
+o LANG-396: Investigate for vararg usages.
+o LANG-424: Improve Javadoc for StringUtils class.
+o LANG-458: Refactor Validate.java to eliminate code redundancy.
+o LANG-479: Document where in SVN trunk is.
+o LANG-504: bring ArrayUtils.isEmpty to the generics world.
+o LANG-505: Rewrite StringEscapeUtils.
+o LANG-507: StringEscapeUtils.unescapeJava should support \u+ notation.
+o LANG-510: Convert StringUtils API to take CharSequence.
+o LANG-513: Better EnumUtils.
+o LANG-528: Mutable classes should implement an appropriately typed Mutable
+ interface.
+o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1.
+o LANG-540: Make NumericEntityEscaper immutable.
+o LANG-541: Replace StringBuffer with StringBuilder.
+o LANG-548: Use Iterable on API instead of Collection.
+o LANG-551: Replace Range classes with generic version.
+o LANG-562: Change Maven groupId.
+o LANG-563: Change Java package name.
+o LANG-570: Do the test cases really still require main() and suite() methods?
+o LANG-579: Add new Validate methods.
+o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class Separators.
+o LANG-605: DefaultExceptionContext overwrites values in recursive situations.
+o LANG-668: Change ObjectUtils min() & max() functions to use varargs rather
+ than just two parameters
+o LANG-681: Push down WordUtils to "text" sub-package.
+o LANG-711: Add includeantruntime=false to javac targets to quell warnings in
+ ant 1.8.1 and better (and modest performance gain).
+o LANG-713: Increase test coverage of FieldUtils read methods and tweak
+ javadoc.
+o LANG-718: build.xml Java 1.5+ updates.
+
+BUG FIXES
+===========
+
+o LANG-11: Depend on JDK 1.5+.
+o LANG-302: StrBuilder does not implement clone().
+o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte characters like
+ Chinese, Japanese, etc.
+o LANG-369: ExceptionUtils not thread-safe.
+o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase.
+o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now return false
+ for ""
+o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20).
+o LANG-448: Lower Ascii Characters don't get encoded by Entities.java.
+o LANG-468: JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder).
+o LANG-474: Fixes for thread safety.
+o LANG-478: StopWatch does not resist to system time changes.
+o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode
+ characters above U+00FFFF into 2 characters.
+o LANG-481: Possible race-conditions in hashCode of the range classes.
+o LANG-564: Improve StrLookup API documentation.
+o LANG-568: @SuppressWarnings("unchecked") is used too generally.
+o LANG-571: ArrayUtils.add(T[: array, T element) can create unexpected
+ ClassCastException.
+o LANG-585: exception.DefaultExceptionContext.getFormattedExceptionMessage
+ catches Throwable.
+o LANG-596: StrSubstitutor should also handle the default properties of a
+ java.util.Properties class
+o LANG-600: Javadoc is incorrect for public static int
+ lastIndexOf(String str, String searchStr).
+o LANG-602: ContextedRuntimeException no longer an 'unchecked' exception.
+o LANG-606: EqualsBuilder causes StackOverflowException.
+o LANG-608: Some StringUtils methods should take an int character instead of
+ char to use String API features.
+o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 supplementary
+ characters
+o LANG-624: SystemUtils.getJavaVersionAsFloat throws
+ StringIndexOutOfBoundsException on Android runtime/Dalvik VM
+o LANG-629: Charset may not be threadsafe, because the HashSet is not synch.
+o LANG-638: NumberUtils createNumber throws a StringIndexOutOfBoundsException
+ when argument containing "e" and "E" is passed in
+o LANG-643: Javadoc StringUtils.left() claims to throw on negative len, but
+ doesn't
+o LANG-645: FastDateFormat.format() outputs incorrect week of year because
+ locale isn't respected
+o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal escapes and
+ Unicode with extra u
+o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect
+o LANG-658: Some entities like &Ouml; are not matched properly against its
+ ISO8859-1 representation
+o LANG-659: EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212
+ ISOtech
+o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f.
+o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce
+ (Integer.MIN_VALUE, 2^k)
+o LANG-663: org.apache.commons.lang3.math.Fraction does not always succeed in
+ multiplyBy and divideBy
+o LANG-664: NumberUtils.isNumber(String) is not right when the String is
+ "1.1L"
+o LANG-672: Doc bug in DateUtils#ceiling
+o LANG-677: DateUtils.isSameLocalTime compares using 12 hour clock and not
+ 24 hour
+o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder.
+o LANG-703: StringUtils.join throws NPE when toString returns null for one of
+ objects in collection
+o LANG-710: StringIndexOutOfBoundsException when calling unescapeHtml4("&#03")
+o LANG-714: StringUtils doc/comment spelling fixes.
+o LANG-715: CharSetUtils.squeeze() speedup.
+o LANG-716: swapCase and *capitalize speedups.
+
+
+Historical list of changes: https://commons.apache.org/lang/changes-report.html
+
+For complete information on Commons Lang, including instructions on how to
+submit bug reports, patches, or suggestions for improvement, see the
+Apache Commons Lang website:
+
+https://commons.apache.org/lang/
+
+Have fun!
+-Apache Commons Lang team
+