
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 Text 1.13.1 Release Notes
----------------------------------------

This document contains the release notes for the 1.13.1 version of Apache Commons Text.

Apache Commons Text is a set of utility functions and reusable components for the purpose of processing
and manipulating text that should be of use in a Java environment.

Release 1.13.1. Requires Java 8 or above.



Fixed Bugs
----------

*            Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory.
*            Deprecate EntityArrays.EntityArrays(). Thanks to Gary Gregory.
*            StringLookupFactory.DefaultStringLookupsHolder.createDefaultStringLookups() maps DefaultStringLookup.LOCAL_HOST twice instead of once for LOCAL_HOST and LOOPBACK_ADDRESS. Thanks to Gary Gregory.

Changes
-------

*            Bump org.apache.commons:commons-parent from 79 to 81. Thanks to Gary Gregory.
*            Bump commons.bytebuddy.version from 1.16.1 to 1.17.5 #643, #659, #660. Thanks to Gary Gregory, Dependabot.
*            Bump graalvm.version from 24.1.2 to 24.2.0 #653. Thanks to Gary Gregory, Dependabot.


Historical list of changes: https://commons.apache.org/proper/commons-text/changes.html

For complete information on Apache Commons Text, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Text website:

https://commons.apache.org/proper/commons-text

Download page: https://commons.apache.org/proper/commons-text/download_text.cgi

Have fun!
-Apache Commons Team

-----------------------------------------------------------------------------

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 Text Version 1.13.0 Release Notes
------------------------------------------------

This document contains the release notes for the 1.13.0 version of Apache Commons Text.

Apache Commons Text is a set of utility functions and reusable components for the purpose of processing
and manipulating text that should be of use in a Java environment.

Release 1.13.0. Requires Java 8 or above.


New features
------------

*            Add StringLookupFactory.loopbackAddressStringLookup(). Thanks to Gary Gregory.
*            Add StringLookupFactory.KEY_LOOPBACK_ADDRESS. Thanks to Gary Gregory.
*            Add DefaultStringLookup.LOOPBACK_ADDRESS. Thanks to Gary Gregory.
*            Add richer inputs in package org.apache.commons.text.similarity with SimilarityInput. Thanks to Gary Gregory.
*            Add HammingDistance.apply(SimilarityInput, SimilarityInput). Thanks to Gary Gregory.
*            Add JaccardDistance.apply(SimilarityInput, SimilarityInput). Thanks to Gary Gregory.
*            Add JaccardSimilarity.apply(SimilarityInput, SimilarityInput). Thanks to Gary Gregory.
*            Add JaroWinklerDistance.apply(SimilarityInput, SimilarityInput). Thanks to Gary Gregory.
*            Add JaroWinklerSimilarity.apply(SimilarityInput, SimilarityInput). Thanks to Gary Gregory.
*            Add LevenshteinDetailedDistance.apply(SimilarityInput, SimilarityInput). Thanks to Gary Gregory.
*            Add LevenshteinDistance.apply(SimilarityInput, SimilarityInput). Thanks to Gary Gregory.

Fixed Bugs
----------

*            Fix build on Java 22. Thanks to Gary Gregory.
*            Fix build on Java 23-ea. Thanks to Gary Gregory.
*            Make package-private constructor private: StrLookup.MapStrLookup.MapStrLookup(Map). Thanks to Gary Gregory.
*            Make package-private constructor private: StrLookup.SystemPropertiesStrLookup.SystemPropertiesStrLookup(). Thanks to Gary Gregory.
*            Make package-private class private and final: MapStrLookup. Thanks to Gary Gregory.
*            Make package-private class private: StrMatcher.CharMatcher. Thanks to Gary Gregory.
*            Make package-private class private: StrMatcher.CharSetMatcher. Thanks to Gary Gregory.
*            Make package-private class private: StrMatcher.NoMatcher. Thanks to Gary Gregory.
*            Make package-private class private: StrMatcher.StringMatcher. Thanks to Gary Gregory.
*            Make package-private class private: StrMatcher.TrimMatcher. Thanks to Gary Gregory.
*            Make package-private class private and final: IntersectionSimilarity.BagCount. Thanks to Gary Gregory.
*            Make package-private class private and final: IntersectionSimilarity.TinyCount. Thanks to Gary Gregory.
*            Deprecate LevenshteinDistance.LevenshteinDistance() in favor of LevenshteinDistance.getDefaultInstance(). Thanks to Gary Gregory.
*            Deprecate LevenshteinDetailedDistance.LevenshteinDetailedDistance() in favor of LevenshteinDetailedDistance.getDefaultInstance(). Thanks to Gary Gregory.
* TEXT-234:  Improve StrBuilder documentation for new line text. Thanks to Gary Gregory.
* TEXT-234:  Improve TextStringBuilder documentation for new line text #547. Thanks to TobiasKiecker.
* TEXT-233:  Required OSGi Import-Package version numbers in MANIFEST.MF #627. Thanks to belpk.

Changes
-------

*            Bump org.apache.commons:commons-parent from 69 to 78 #542, #557, #571, #581, #584, #593, #600, #603, #614. Thanks to Dependabot.
*            Bump commons.bytebuddy.version from 1.14.13 to 1.15.10 #538, #548, #553, #565, #579, #582, #585, #596, #597, #604, #612, #620, #623, #625. Thanks to Gary Gregory.
*            Bump SpotBugs from 4.8.3 to 4.8.5. Thanks to Gary Gregory.
*            Bump org.assertj:assertj-core from 3.25.3 to 3.26.3 #554, #566. Thanks to Dependabot.
*            Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.2.1 #564, #611. Thanks to Dependabot.
*            Bump org.apache.commons:commons-rng-simple from 1.5 to 1.6 #568. Thanks to Dependabot, Gary Gregory.
*            Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #569, #575, #586. Thanks to Dependabot, Gary Gregory.
*            Bump commons-io:commons-io from 2.16.1 to 2.18.0 #594, #628. Thanks to Dependabot, Gary Gregory.


Historical list of changes: https://commons.apache.org/proper/commons-text/changes-report.html

For complete information on Apache Commons Text, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Text website:

https://commons.apache.org/proper/commons-text

Download page: https://commons.apache.org/proper/commons-text/download_text.cgi

Have fun!
-Apache Commons Team

-----------------------------------------------------------------------------

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 Text Version 1.12.0 Release Notes
------------------------------------------------

This document contains the release notes for the 1.12.0 version of Apache Commons Text.
Apache Commons Text is a set of utility functions and reusable components for the purpose of processing
and manipulating text that should be of use in a Java environment.

Release 1.12.0. Requires Java 8 or above.

New features
------------

*            Add StringLookupFactory.fileStringLookup(Path...) and deprecated fileStringLookup(). Thanks to Gary Gregory.
*            Add StringLookupFactory.propertiesStringLookup(Path...) and deprecated propertiesStringLookup(). Thanks to Gary Gregory.
*            Add StringLookupFactory.xmlStringLookup(Map, Path...) and deprecated xmlStringLookup() and xmlStringLookup(Map). Thanks to Gary Gregory.
*            Add StringLookupFactory.builder() for fencing Path resolution of the file, properties and XML lookups. Thanks to Gary Gregory.
*            Add DoubleFormat.Builder.get() as Builder now implements Supplier. Thanks to Gary Gregory.

Fixed Bugs
----------

* TEXT-232:  WordUtils.containsAllWords?() may throw PatternSyntaxException. Thanks to Arnout Engelen, Gary Gregory.
* TEXT-175:  Fix regression for determining whitespace in WordUtils #519. Thanks to David Lavati, seanfabs, Gary Gregory, Bruno P. Kinoshita.
*            Deprecate Builder in favor of Supplier. Thanks to Gary Gregory.

Changes
-------

*            Bump commons-lang3 from 3.13.0 to 3.14.0. Thanks to Gary Gregory.
*            Bump commons.bytebuddy.version from 1.14.9 to 1.14.13 #476, #482, #505, #521. Thanks to Dependabot.
*            Bump org.codehaus.mojo:exec-maven-plugin from 3.1.0 to 3.2.0 #474, #508. Thanks to Dependabot.
*            Bump commons-io from 2.15.0 to 2.16.1 #522, #527. Thanks to Gary Gregory.
*            Bump commons-parent from 64 to 69 #524. Thanks to Gary Gregory.
*            Bump org.assertj:assertj-core from 3.24.2 to 3.25.3. Thanks to Dependabot.

Historical list of changes: https://commons.apache.org/proper/commons-text/changes-report.html

For complete information on Apache Commons Text, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Text website:

https://commons.apache.org/proper/commons-text

Download page: https://commons.apache.org/proper/commons-text/download_text.cgi

Have fun!
-Apache Commons Team

-----------------------------------------------------------------------------

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 Text Version 1.11.0 Release Notes
------------------------------------------------

This document contains the release notes for the 1.11.0 version of Apache Commons Text.
Commons Text is a set of utility functions and reusable components for the purpose of processing
and manipulating text that should be of use in a Java environment.

Apache Commons Text is a library focused on algorithms working on strings.

Release 1.11.0. Requires Java 8 or above.

New features
------------

* TEXT-224:  Set SecureProcessing feature in XmlStringLookup by default. Thanks to PJ Fanning, Gary Gregory.
* TEXT-224:  Add StringLookupFactory.xmlStringLookup(Map<String, Boolean>...). Thanks to Gary Gregory.
*            Add @FunctionalInterface to FormatFactory. Thanks to Gary Gregory.
*            Add RandomStringGenerator.builder(). Thanks to Gary Gregory.
* TEXT-229:  Add XmlEncoderStringLookup/XmlDecoderStringLookup #449. Thanks to Michael Osipov, Elliotte Rusty Harold, Gary Gregory.
*            Add StringSubstitutor.toString(). Thanks to Gary Gregory.

Fixed Bugs
----------

* TEXT-219:  Fix StringTokenizer.getTokenList to return an independent modifiable list Thanks to Jaap Sperling.
*            Fix Javadoc for StringEscapeUtils.escapeHtml4 #382 Thanks to James Nord.
*            TextStringBuidler#hashCode() allocates a String on each call #387. Thanks to Pavel Belousov, Gary Gregory.
* TEXT-221:  Fix Bundle-SymbolicName to use the package name org.apache.commons.text Thanks to Remco Riswick.
*            Add and use a package-private singleton for RegexTokenizer. Thanks to Gary Gregory.
*            Add and use a package-private singleton for CosineSimilarity. Thanks to Gary Gregory.
*            Add and use a package-private singleton for LongestCommonSubsequence. Thanks to Gary Gregory.
*            Add and use a package-private singleton for JaroWinklerSimilarity. Thanks to Gary Gregory.
*            Add and use a package-private singleton for JaccardSimilarity. Thanks to Gary Gregory.
*            [StepSecurity] ci: Harden GitHub Actions #428. Thanks to step-security-bot, Gary Gregory.
*            Improve AlphabetConverter Javadoc #429. Thanks to Dimitrios Efthymiou.
*            Fix exception message in IntersectionResult to make set-theoretic sense #438. Thanks to Dimitrios Efthymiou.
*            Add null-check in RandomStringGenerator#Builder#selectFrom() to avoid NullPointerException #434. Thanks to Dimitrios Efthymiou, Gary Gregory.
*            Add null-check in RandomStringGenerator#Builder#withinRange() to avoid NullPointerException. Thanks to Dimitrios Efthymiou, Gary Gregory.
* TEXT-228:  Fix TextStringBuilder to over-allocate when ensuring capacity #452. Thanks to Alex Herbert, Gary Gregory.
*            Constructor for ResourceBundleStringLookup should be private instead of package-private. Thanks to Elliotte Rusty Harold, Gary Gregory.
*            Constructor for UrlDecoderStringLookup should be private instead of package-private. Thanks to Elliotte Rusty Harold, Gary Gregory.
*            Constructor for UrlEncoderStringLookup should be private instead of package-private. Thanks to Elliotte Rusty Harold, Gary Gregory.
* TEXT-230:  Javadoc of org.apache.commons.text.lookup.DefaultStringLookup.XML is incorrect. Thanks to Michael Osipov, Gary Gregory.
*            Update DoubleFormat to state it is based on Double.toString. #467. Thanks to Alex Herbert.

Changes
-------

*            Bump actions/cache. Thanks to Dependabot.
*            Bump actions/setup-java. Thanks to Dependabot.
*            Bump actions/checkout. Thanks to Dependabot.
*            Bump pmd from 6.49.0 to 6.52.0 #364. Thanks to Dependabot, Gary Gregory.
*            Bump commons-rng-simple from 1.4 to 1.5 #370. Thanks to Dependabot.
*            Bump spotbugs-maven-plugin from 4.7.2.0 to 4.7.3.6 #371, #385. Thanks to Dependabot, Gary Gregory.
*            Bump spotbugs from 4.7.2 to 4.7.3 #373. Thanks to Dependabot.
*            Bump mockito-inline from 4.8.0 to 4.11.0 #380, #389, #396, #400. Thanks to Dependabot.
*            Bump jmh.version from 1.35 to 1.37 #388. Thanks to Dependabot.
*            Bump commons-parent from 54 to 64 #392, #401. Thanks to Gary Gregory.
*            Bump assertj-core from 3.23.1 to 3.24.2 #405, #410. Thanks to Dependabot.
*            Bump maven-checkstyle-plugin from 3.2.0 to 3.2.1 #407. Thanks to Dependabot.
*            Bump commons-io from 2.11.0 to 2.14.0. Thanks to Gary Gregory.
*            Bump commons-lang3 from 3.12.0 to 3.13.0. Thanks to Gary Gregory.


Historical list of changes: https://commons.apache.org/proper/commons-text/changes-report.html

For complete information on Apache Commons Text, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Text website:

https://commons.apache.org/proper/commons-text

Download page: https://commons.apache.org/proper/commons-text/download_text.cgi

Have fun!
-Apache Commons Team

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.10.0 Release Notes
------------------------------------------------

This document contains the release notes for the 1.10.0 version of Apache Commons Text.
Commons Text is a set of utility functions and reusable components for the purpose of processing
and manipulating text that should be of use in a Java environment.

Apache Commons Text is a library focused on algorithms working on strings.

Release 1.10.0. Requires Java 8 or above.

Changes in this version include:

New features
------------

* TEXT-207:  Add DoubleFormat utility.
* TEXT-190:  Document negative limit for WordUtils abbreviate method Thanks to Benjamin Bing.
* TEXT-188:  Speed up LevenshteinDistance with threshold by exiting early Thanks to Jakob Vesterstrøm.
* TEXT-185:  Release Notes page hasn't been updated for 1.9 release yet. Thanks to Larry West, Gary Gregory.
*            Add StrBuilder.isNotEmpty(). Thanks to Gary Gregory.

Fixed Bugs
----------

* TEXT-189:  Fix CaseUtils when the input string contains only delimiters Thanks to Gongpu Zhu.
* TEXT-187:  Add GraalVM test dependencies to fix test failures with Java 15.
* TEXT-158:  Incorrect values for Jaccard similarity with empty strings.
* TEXT-186:  StringSubstitutor map constructor throws NPE on 1.9 with null map. Thanks to Gautam Korlam, Gary Gregory.
* TEXT-191:  JaroWinklerDistance returns the same values as JaroWinklerSimilarity. Thanks to Bradley David Rumball.
*            Correct Javadoc in FileStringLookup. Thanks to Gary Gregory.
*            Minor Improvements #192, #196. Thanks to Arturo Bernal.
* TEXT-194:  Use StringUtils.INDEX_NOT_FOUND constant. Thanks to Arturo Bernal.
* TEXT-199:  Remove redundant local variable. Thanks to Arturo Bernal.
* TEXT-198:  Replace lambda with method reference. Thanks to Arturo Bernal.
* TEXT-200:  Simplify statements. Thanks to Arturo Bernal.
* TEXT-197:  Replace statement lambda with expression lambda. Thanks to Arturo Bernal.
* TEXT-204:  Use static class inner class in tests. Thanks to Arturo Bernal.
* TEXT-201:  Simplify assertion. Thanks to Arturo Bernal.
* TEXT-202:  Extract duplicate code. Thanks to Arturo Bernal.
* TEXT-205:  Set void return method. Thanks to Arturo Bernal.
*            Remove unused exception from TextStringBuilder.readFrom(CharBuffer). This preserves binary compatibility but not source compatibility. Thanks to Gary Gregory.
*            StrBuilder.StrBuilderReader.skip(long): Throw an exception when an implicit narrowing conversion in a compound assignment would result in information loss or a numeric error such as an overflows. Thanks to CodeQL, Gary Gregory.
*            TextStringBuilder.TextStringBuilderReader.skip(long): Throw an exception when an implicit narrowing conversion in a compound assignment would result in information loss or a numeric error such as an overflows. Thanks to CodeQL, Gary Gregory.
* TEXT-211:  TextStringBuilder.equals whatever the capacity is #281. Thanks to sebx59.
* TEXT=212:  A More Efficient Implementation for Calculating Size of Longest Common Subsequence. Thanks to Ali Ghanbari.
* TEXT-209:  LookupTranslator returns count of chars consumed, not of codepoints consumed. Thanks to fourAjeff.
* TEXT-209:  Use Math.min() call instead of doing it manually. #335. Thanks to Arturo Bernal.
*            TextStringBuilder: Throw OutOfMemoryError instead of NegativeArraySizeException. Thanks to ValentijnvdBeek, Gary Gregory.
*            TextStringBuilder: Can't grow to sizes up to Integer.MAX_VALUE. Thanks to ValentijnvdBeek, Gary Gregory.
*            Make default string lookups configurable via system property. Remove dns, url, and script lookups from defaults. If these lookups are required for use in StringSubstitutor.createInterpolator(), they must be enabled via system property. See StringLookupFactory for details.

Changes
-------

*            Bump actions/setup-java from v1.4.0 to 3 #147, #156, #155, #172, #215, #314. Thanks to Dependabot.
*            Bump github/codeql-action from 1 to 2 #319. Thanks to Dependabot.
*            Bump checkstyle from 8.34 to 9.3, #141, #168, #182, #188, #193, #201, #208, #211, #228, #235, #245, #253, #255, #262, #270, #280, #287, #299, #315, #321. Thanks to Dependabot.
*            Bump spotbugs-maven-plugin from 4.0.0 to 4.7.2.0, #144, #150, #167, #176, #194, #210, #223, #250, #268, #273, #277, #278, #286, #293, #303, #320, #325, #338, #344, #354. Thanks to Gary Gregory, Dependabot.
*            Bump spotbugs from 4.1.3 to 4.7.2 #175, 189, #209, #218, #247, #256, #264, #275, #284, #289, #296, #306, #355. Thanks to Gary Gregory, Dependabot.
*            Bump mockito-inline from 3.4.4 to 4.8.0, #143, #148, #149, #152, #153, #154, #158, #159, #166, #177, #180, #187, #195, #197, #207, #216, #231, #236, #237, #243, #258, #259, #260, #261, #272, #285, #291, #305, #317, #330, #331, #347, #352. Thanks to Dependabot.
*            Bump junit-jupiter from 5.6.2 to 5.9.1 #163, #204, #232, #265, #269, #288, #343, #357. Thanks to Dependabot.
*            Bump assertj-core from 3.16.1 to 3.23.1 #151, #157, #160, #178, #184, #199, #244, #267, #294. Thanks to Dependabot, Gary Gregory.
*            Bump commons-io from 2.7 to 2.11.0 #161 #251. Thanks to Dependabot, Gary Gregory.
*            Bump commons-parent from 51 to 54 #145, #358. Thanks to Dependabot, Gary Gregory.
*            Bump maven-pmd-plugin from 3.13.0 to 3.19.0 #186, #263, #302, #334, #349, #353. Thanks to Dependabot.
*            Bump pmd from 6.42.0 to 6.46.0. Thanks to Gary Gregory.
*            Bump graalvm.version from 20.2.0 to 22.0.0.2 #185, #198, #206, #227, #252, #276, #295, #300. Thanks to Dependabot.
*            Bump commons.japicmp.version from 0.14.3 to 0.16.0. Thanks to Gary Gregory.
*            Bump commons.jacoco.version 0.8.5 to 0.8.8; fixes Java 15 build. Thanks to Gary Gregory.
*            Bump maven-checkstyle-plugin from 3.1.1 to 3.2.0 #202, #348. Thanks to Dependabot.
*            Bump commons-lang3 3.11 -> 3.12.0. Thanks to Gary Gregory.
*            Bump commons.javadoc.version from 3.2.0 to 3.4.1. Thanks to Gary Gregory.
*            Bump commons.project-info.version from 3.1.0 to 3.1.2. Thanks to Gary Gregory.
*            Bump jmh.version from 1.32 to 1.35 #254, #292, #313. Thanks to Dependabot.
*            Bump commons-rng-simple from 1.3 to 1.4 #266. Thanks to Dependabot.
*            Bump taglist-maven-plugin from 2.4 to 3.0.0 #297. Thanks to Dependabot.
*            Bump commons.pmd-impl.version from 6.44.0 to 6.49.0 #323, #336, #345, #350. Thanks to Dependabot.
*            Bump exec-maven-plugin from 3.0.0 to 3.1.0 #340. Thanks to Dependabot.

Historical list of changes: https://commons.apache.org/proper/commons-text/changes-report.html

For complete information on Apache Commons Text, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Text website:

https://commons.apache.org/proper/commons-text

Download page: https://commons.apache.org/proper/commons-text/download_text.cgi

Have fun!
-Apache Commons Team

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.9 Release Notes
---------------------------------------------

This document contains the release notes for the 1.9 version of Apache Commons Text.
Commons Text is a set of utility functions and reusable components for the purpose of processing
and manipulating text that should be of use in a Java environment.

Apache Commons Text is a library focused on algorithms working on strings.

Release 1.9. Requires Java 8 or above.

Changes in this version include:

New features
------------

* Add StringMatcher.size(). Thanks to Gary Gregory.
* Refactor TextStringBuilder.readFrom(Readable), extracting readFrom(CharBuffer) and readFrom(Reader). Thanks to Gary Gregory.
* Add BiStringLookup and implementation BiFunctionStringLookup. Thanks to Gary Gregory.
* Add org.apache.commons.text.StringSubstitutor.StringSubstitutor(StringSubstitutor). Thanks to Gary Gregory.
* Add org.apache.commons.text.TextStringBuilder.TextStringBuilder(CharSequence). Thanks to Gary Gregory.
* Add org.apache.commons.text.TextStringBuilder.drainChar(int). Thanks to Gary Gregory.
* Add org.apache.commons.text.TextStringBuilder.drainChars(int, int, char[]. int). Thanks to Gary Gregory.
* Add org.apache.commons.text.TextStringBuilder.isNotEmpty(). Thanks to Gary Gregory.
* Add org.apache.commons.text.TextStringBuilder.isReallocated(). Thanks to Gary Gregory.
* Add org.apache.commons.text.TextStringBuilder.readFrom(Reader, int). Thanks to Gary Gregory.
* Add org.apache.commons.text.TextStringBuilder.set(String). Thanks to Gary Gregory.
* Add org.apache.commons.text.TextStringBuilder.wrap(char[]). Thanks to Gary Gregory.
* Add org.apache.commons.text.TextStringBuilder.wrap(char[], int). Thanks to Gary Gregory.
* Add org.apache.commons.text.io.StringSubstitutorReader. Thanks to Gary Gregory.
* Add org.apache.commons.text.lookup.StringLookupFactory.functionStringLookup(Function<String, V>). Thanks to Gary Gregory.
* Add org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence, int). Thanks to Gary Gregory.
* Add org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence, int, int, int). Thanks to Gary Gregory.
* Add org.apache.commons.text.matcher.StringMatcherFactory.andMatcher(StringMatcher...). Thanks to Gary Gregory.
* Add org.apache.commons.text.matcher.StringMatcherFactory.stringMatcher(char...). Thanks to Gary Gregory.

Fixed Bugs
----------

* TEXT-166:  Removed non-existing parameter from Javadocs and spelled out parameters in throws. Thanks to Mikko Maunu.
* TEXT-149:  StringEscapeUtils.unescapeCsv doesn't remove quotes at begin and end of string. Thanks to Yuji Konishi.
* TEXT-174:  ScriptStringLookup does not accept ":" #126. Thanks to furkilic.
* TEXT-178:  StringSubstitutor incorrectly removes some escape characters. Thanks to Gary Gregory.
* TEXT-181:  Fix Javadocs #135. Thanks to XenoAmess.
* TEXT-182:  Fix typos #137. Thanks to XenoAmess.
* TEXT-183:  Make ConstantStringLookup.constantCache final #136. Thanks to XenoAmess.
* TEXT-184:  Simplify if in CaseUtils #134. Thanks to XenoAmess.

Changes
-------

* [javadoc] Fix compiler warnings in Java code example in Javadoc #124. Thanks to Johan Hammar.
* TEXT-177:  Update from Apache Commons Lang 3.9 to 3.11. Thanks to Gary Gregory.
* [build] Skip clirr since we use JApiCmp. Thanks to Gary Gregory.
* [test] junit-jupiter 5.5.1 -> 5.5.2. Thanks to Gary Gregory.
* [test] org.assertj:assertj-core 3.13.2 -> 3.16.1. Thanks to Gary Gregory.
* [build] com.puppycrawl.tools:checkstyle 8.23 -> 8.34. Thanks to Gary Gregory.
* [build] Update JUnit from 5.5.2 to 5.6.2. Thanks to Gary Gregory.
* [build] commons.jacoco.version 0.8.4 -> 0.8.5. Thanks to Gary Gregory.
* [build] commons.javadoc.version 3.1.1 -> 3.2.0. Thanks to Gary Gregory.
* [build] commons.japicmp.version 0.14.1 -> 0.14.3. Thanks to Gary Gregory.
* [build] checkstyle.plugin.version 3.1.0 -> 3.1.1. Thanks to Gary Gregory.
* [build] checkstyle.version 8.27 -> 8.33. Thanks to Gary Gregory.
* [build] org.apache.commons:commons-parent 48 -> 51. Thanks to Gary Gregory.
* [build] maven-pmd-plugin 3.12.0 -> 3.13.0. Thanks to Gary Gregory.
* [build] org.mockito 3.3.3 -> 3.4.4. Thanks to Gary Gregory.

Historical list of changes: https://commons.apache.org/proper/commons-text/changes-report.html

For complete information on Apache Commons Text, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Text website:

https://commons.apache.org/proper/commons-text

Download page: https://commons.apache.org/proper/commons-text/download_text.cgi

Have fun!
-Apache Commons Team

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.8 Release Notes
---------------------------------------------

This document contains the release notes for the 1.8 version of Apache Commons Text.
Commons Text is a set of utility functions and reusable components for the purpose of processing
and manipulating text that should be of use in a Java environment.

Apache Commons Text is a library focused on algorithms working on strings.

Release 1.8

Changes in this version include:

New Features
------------

* TEXT-169: Add helper factory method org.apache.commons.text.StringSubstitutor.createInterpolator(). Thanks to Gary Gregory.
* TEXT-170: Add String lookup for host names and IP addresses (DnsStringLookup). Thanks to Gary Gregory.
    
Fixed Bugs
----------

* TEXT-167: commons-text web page missing "RELEASE-NOTES-1.7.txt". Thanks to Larry West.
* TEXT-168: (doc) Fixed wrong value for Jaro-Winkler example #117. Thanks to luksan47.
* TEXT-171: StringLookupFactory.addDefaultStringLookups(Map) does not convert keys to lower case. Thanks to Gary Gregory.
    
Changes
-------

* Expand Javadoc for StringSubstitutor and friends. Thanks to Gary Gregory.
* [site] checkstyle.version 8.21 -> 8.23. Thanks to Gary Gregory.
    

Historical list of changes: https://commons.apache.org/proper/commons-textchanges-report.html

For complete information on Apache Commons Text, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Text website:

https://commons.apache.org/proper/commons-text

Download it from https://commons.apache.org/proper/commons-text/download_text.cgi

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.7 Release Notes
---------------------------------------------

This document contains the release notes for the 1.7 version of Apache Commons Text.
Commons Text is a set of utility functions and reusable components for the purpose of processing
and manipulating text that should be of use in a Java environment.

Apache Commons Text is a library focused on algorithms working on strings.

Changes in this version include:

New features
------------

* TEXT-148:  Add an enum to the lookup package that lists all StringLookups
* TEXT-127:  Add a toggle to throw an exception when a variable is unknown in StringSubstitutor Thanks to Jean-Baptiste REICH, Sebb, Don Jeba, Gary Gregory.
* TEXT-138:  TextStringBuilder append sub-sequence not consistent with Appendable. Thanks to Neal Johnson, Don Jeba.
* TEXT-152:  Fix possible infinite loop in WordUtils.wrap for a regex pattern that would trigger on a match of 0 length Thanks to @CAPS50.
* TEXT-155:  Add a generic IntersectionSimilarity measure

Fixed Bugs
----------

* TEXT-111:  WordUtils.wrap must calculate offset increment from wrapOn pattern length Thanks to @CAPS50.
* TEXT-151:  Fix the JaroWinklerSimilarity to use StringUtils.equals to test for CharSequence equality
* TEXT-165:  ResourceBundleStringLookup.lookup(String) throws MissingResourceException instead of returning null.

Changes
-------

* TEXT-104:  Jaro Winkler Distance refers to similarity Thanks to Sascha Szott.
* TEXT-153:  Make prefixSet in LookupTranslator a BitSet Thanks to amirhadadi.
* TEXT-156:  Fix the RegexTokenizer to use a static Pattern
* TEXT-157:  Remove rounding from JaccardDistance and JaccardSimilarity
* TEXT-162:  Update Apache Commons Lang from 3.8.1 to 3.9.
* Update tests from org.assertj:assertj-core 3.12.1 to 3.12.2.
* Update site from com.puppycrawl.tools:checkstyle 8.18 to 8.21.

Historical list of changes: https://commons.apache.org/proper/commons-text/changes-report.html

For complete information on Apache Commons Text, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Text website:

https://commons.apache.org/proper/commons-text

Download it from https://commons.apache.org/proper/commons-text/download_text.cgi

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.6 Release Notes
---------------------------------------------


This document contains the release notes for the 1.6 version of Apache Commons
Text. Commons Text is a set of utility functions and reusable components for
the purpose of processing and manipulating text that should be of use in a Java
environment.

This release requires Java 8.

Changes
-------

* TEXT-144:  Add the resource string bundle string lookup to the default set of lookups
* TEXT-145:  Add StringLookupFactory methods for the URL encoder and decoder string lookups
* TEXT-146:  org.apache.commons.text.lookup.StringLookupFactory.interpolatorStringLookup() should reuse a singleton instance
* TEXT-147:  Add a Base64 encoder string lookup.

Historical list of changes: https://commons.apache.org/proper/commons-text/changes-report.html

For complete information on Apache Commons Text, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Text website:

https://commons.apache.org/proper/commons-text

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.5 Release Notes
---------------------------------------------

This document contains the release notes for the 1.5 version of Apache Commons
Text. Commons Text is a set of utility functions and reusable components for 
the purpose of processing and manipulating text that should be of use in a Java
environment.

This release requires Java 8.

New Features
------------

* TEXT-133:  Add a XML file XPath string lookup.
* TEXT-134:  Add a Properties file string lookup.
* TEXT-135:  Add a script string lookup.
* TEXT-136:  Add a file string lookup.
* TEXT-137:  Add a URL string lookup.
* TEXT-140:  Add a Base64 string lookup.
* TEXT-141:  Add org.apache.commons.text.lookup.StringLookupFactory.resourceBundleStringLookup(String).
* TEXT-142:  Add URL encoder and decoder string lookups.
* TEXT-143:  Add constant string lookup like the one in Apache Commons Configuration.

Fixed Bugs
----------

* TEXT-139:  Improve JaccardSimilarity computational cost Thanks to Nick Wong.
* TEXT-118:  JSON escaping incorrect for the delete control character Thanks to Nandor Kollar.
* TEXT-130:  Fixes JaroWinklerDistance: Wrong results due to precision of transpositions Thanks to Jan Martin Keil.
* TEXT-131:  JaroWinklerDistance: Calculation deviates from definition Thanks to Jan Martin Keil.

Changes
-------

* TEXT-132:  Update Apache Commons Lang from 3.7 to 3.8.1

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.4 Release Notes
---------------------------------------------

This document contains the release notes for the 1.4 version of Apache Commons
Text. Commons Text is a set of utility functions and reusable components for 
the purpose of processing and manipulating text that should be of use in a Java
environment.

This release requires Java 8.

Changes in this version include:
    
Fixed Bugs
----------

* TEXT-120:  StringEscapeUtils#unescapeJson does not unescape double quotes and forward slash.
* TEXT-119:  Remove mention of SQL escaping from user guide.
* TEXT-123:  WordUtils.wrap throws StringIndexOutOfBoundsException when wrapLength is Integer.MAX_VALUE. Thanks to Takanobu Asanuma.
                
Changes
-------

* TEXT-121:  Update Java requirement from version 7 to 8. Thanks to pschumacher.
* TEXT-122:  Allow full customization with new API org.apache.commons.text.lookup.StringLookupFactory.interpolatorStringLookup(Map<String, StringLookup>, StringLookup, boolean).

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.3 Release Notes
---------------------------------------------

This document contains the release notes for the 1.3 version of Apache Commons
Text. Commons Text is a set of utility functions and reusable components for 
the purpose of processing and manipulating text that should be of use in a Java
environment.

This release requires Java 7.

New Features
------------

* Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility  Issue: TEXT-110. 
* Add an interpolator string lookup: StringLookupFactory#interpolatorStringLookup()  Issue: TEXT-113. 
* Add a StrSubstitutor replacement based on interfaces: StringSubstitutor  Issue: TEXT-114. 
* Add a StrBuilder replacement based on the StringMatcher interface: TextStringBuilder  Issue: TEXT-115. 
* Add a StrTokenizer replacement based on the StringMatcher interface: StringTokenizer  Issue: TEXT-116. 
* Add a local host string lookup: LocalHostStringLookup  Issue: TEXT-117. 

Fixed Bugs
----------

* Build failure with java 9-ea+159  Issue: TEXT-70. 
* StrLookup API confusing  Issue: TEXT-80. 

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.2 Release Notes
---------------------------------------------


This document contains the release notes for the 1.2 version of Apache Commons
Text. Commons Text is a set of utility functions and reusable components for 
the purpose of processing and manipulating text that should be of use in a Java
environment.

This release requires Java 7.

Java 9 Support
--------------

At our time of release of 1.1, our build succeeds with Java 9-ea build 159,
and we believe all of our features to be Java 9 compatible. However, when we
run "mvn clean site" we have failures.

New Features
------------

* TEXT-74:   StrSubstitutor: Ability to turn off substitution in values. Thanks to Ioannis Sermetziadis.
* TEXT-97:   RandomStringGenerator able to pass multiple ranges to .withinRange(). Thanks to Amey Jadiye.
* TEXT-89:   WordUtils.initials support for UTF-16 surrogate pairs. Thanks to Arun Vinud S S.
* TEXT-90:   Add CharacterPredicates for ASCII letters (uppercase/lowercase) and arabic numerals.
* TEXT-85:   Added CaseUtils class with camel case conversion support. Thanks to Arun Vinud S S.
* TEXT-91:   RandomStringGenerator should be able to generate a String with a random length.
* TEXT-102:  Add StrLookup.resourceBundleLookup(ResourceBundle).

Fixed Bugs
----------

* TEXT-106:  Exception thrown in ExtendedMessageFormat using quotes with custom registry. Thanks to Benoit Moreau.
* TEXT-100:  StringEscapeUtils#UnEscapeJson doesn't recognize escape signs correctly. Thanks to Don Jeba.
* TEXT-105:  Typo in LongestCommonSubsequence#logestCommonSubsequence. Thanks to Abrasha.

Changes
-------

* TEXT-107:  Upversion commons-lang to 3.7.
* TEXT-98:   Deprecate isDelimiter and use HashSets for delimiter checks. Thanks to Arun Vinud S S.
* TEXT-88:   WordUtils should treat an empty delimiter array as no delimiters. Thanks to Amey Jadiye.
* TEXT-93:   Update RandomStringGenerator to accept a list of valid characters. Thanks to Amey Jadiye.
* TEXT-92:   Update commons-lang dependency to version 3.6.
* TEXT-83:   Document that commons-csv should be used in preference to CsvTranslators. Thanks to Amey Jadiye.
* TEXT-67:   NumericEntityUnescaper.options - fix TODO.
* TEXT-84:   RandomStringGenerator claims to be immutable, but isn't.

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.1 Release Notes
---------------------------------------------

Java 9 Support
--------------

At our time of release of 1.1, our build succeeds with Java 9-ea build 159,
and we believe all of our features to be Java 9 compatible. However, when we 
run "mvn clean site" we have failures.

New Features
------------

* TEXT-41:   WordUtils.abbreviate support Thanks to Amey Jadiye.
* TEXT-82:   Putting WordUtils back in to the codebase Thanks to Amey Jadiye.
* TEXT-81:   Add RandomStringGenerator Thanks to djones.
* TEXT-36:   RandomStringGenerator: allow users to provide source of randomness
             Thanks to Raymond DeCampo.
                
Fixed Bugs
----------

* TEXT-76:   Correct round issue in Jaro Winkler implementation
* TEXT-72:   Similar to LANG-1025, clirr fails site build.
                
CHANGES
=======

* TEXT-39:   WordUtils should use toXxxxCase(int) rather than toXxxxCase(char) 
             Thanks to Amey Jadiye.

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.0 Release Notes
---------------------------------------------

Incompatible Changes
--------------------

All package names changed from org.apache.commons.text.beta in 1.0-beta-1 to org.apache.commons.text 
in 1.0.

Methods StringEscapeUtils#escapeHtml3Once and StringEscapeUtils#escapeHtml4Once
have been removed; see TEXT-40

Java 9 Support
--------------

At our time of release of 1.0, our build succeeds with Java 9-ea build 158,
and we believe all of our features to be Java 9 compatible. However, when we run
"mvn clean site" we have failures.

Fixed Bugs
----------

* TEXT-64:   Investigate locale issue in ExtendedMessageFormatTest. Thanks to
             chtompki.
* TEXT-69:   Resolve PMD/CMD Violations
* TEXT-65:   Fixing the 200 checkstyle errors present in 1.0-beta-1.
* TEXT-63:   Mutable fields should be private.

Removed
-------

* TEXT-40:   Escape HTML characters only once: revert.

-------------------------------------------------------------------------------------------------------

Apache Commons Text Version 1.0-beta-1 Release Notes
----------------------------------------------------

A note on the History of the Code
---------------------------------

The codebase began in the fall of 2014 as a location for housing algorithms for
*perating on Strings that seemed to have a more complex nature than those which
would be considered a needed extension to java.lang. Thus, a new component,
different from Apache Commons Lang was warranted. As the project evolved, it was
noticed that Commons Lang had considerable more text manipulation tools than
the average Java application developer would need or even want. So, we have
decided to move the more esoteric String processing algorithms out of Commons
Lang into Commons Text.

Java 9 Support
--------------

At our time of release of 1.0-beta-1, our build succeeds with Java 9-ea build 153,
and we believe all of our features to be Java 9 compatible.

New Features
------------

* TEXT-56:   Move CvsTranslators out of StringEscapeUtils and make them DRY
             Thanks to Jarek Strzeleck.
* TEXT-40:   Escape HTML characters only once Thanks to Sampanna Kahu.
* TEXT-32:   Add LCS similarity and distance
* TEXT-34:   Add class to generate random strings
* TEXT-29:   Add a builder to StringEscapeUtils
* TEXT-28:   Add shell/XSI escape/unescape support
* TEXT-2:    Add Jaccard Index and Jaccard Distance Thanks to Don Jeba.
* TEXT-27:   Move org.apache.commons.lang3.StringEscapeUtils.java into text
* TEXT-23:   Moving from commons-lang, the package org.apache.commons.lang3.text
* TEXT-10:   A more complex Levenshtein distance Thanks to Don Jeba.
* TEXT-24:   Add coveralls and Travis.ci integration
* TEXT-19:   Add alphabet converter Thanks to Eyal Allweil.
* TEXT-13:   Create Commons Text logo
* TEXT-7:    Write user guide
* TEXT-15:   Human name parser
* TEXT-3:    Add Cosine Similarity and Cosine Distance
* TEXT-4:    Port Myers algorithm from [collections]
* TEXT-1:    Add Hamming distance
* TEXT-9:    Incorporate String algorithms from Commons Lang Thanks to britter.

Fixed Bugs
----------

Note. We recognize the curiosity of a new component having "fixed bugs," but a
considerable number of files were migrated over from Commons Lang, some of which
needed fixes.

* TEXT-62:   Incorporate suggestions from RC2 into 1.0 release.
* TEXT-60:   Upgrading Jacoco for Java 9-ea compatibility. Thanks to Lee Adcock.
* TEXT-52:   Possible attacks through StringEscapeUtils.escapeEcmaScrip better
             javadoc
* TEXT-37:   Global vs local source of randomness
* TEXT-38:   Fluent API in "RandomStringBuilder"
* TEXT-26:   Fix JaroWinklerDistance in the manner of LUCENE-1297
* TEXT-35:   Unfinished class Javadoc for CosineDistance
* TEXT-22:   LevenshteinDistance reduce memory consumption
* TEXT-5:    IP clearance for the names package
* TEXT-11:   Work on the string metric, distance, and similarity definitions for
             the project
* TEXT-12:   Create StringDistanceFrom class that contains a StringMetric and
             the "left" side string. This would have a method that accepts the
             "right" side string to test. Thanks to Jonathan baker.
* TEXT-8:    Change (R) StringMetric.compare(CS left, CS right) to "apply" so
             that it is consistent with BiFunction. Thanks to Jonathan Baker.
* TEXT-6:    Allow extra information (e.g. Levenshtein threshold) to be stored
             as (final) fields in the StringMetric instance. Thanks to Jonathan
             Baker.

Changes
-------

* TEXT-61:   Naming packages org.apache.commons.text.beta Thanks to Lee Adcock.
* TEXT-58:   Refactor EntityArrays to have unmodifiableMaps in leu of String[][]
* TEXT-53:   Prepare site for 1.0 release
* TEXT-50:   Upgrade from commons-parent version 41 to version 42
* TEXT-33:   Consolidating since tags at 1.0, removing deprecated methods
* TEXT-16:   Improve HumanNameParser

Removed
-------

* TEXT-55:   Remove WordUtils to be added back in an upcoming 1.X release
* TEXT-51:   Remove RandomStringGenerator to be added back in the 1.1 release
* TEXT-31:   Remove org.apache.commons.text.names, for later release than 1.0


Historical list of changes: https://commons.apache.org/text/changes-report.html

For complete information on Apache Commons Text, including instructions on how
to submit bug reports, patches, or suggestions for improvement, see the Apache
Apache Commons Text website:

https://commons.apache.org/text/

Have fun!
-Apache Commons Text team

-------------------------------------------------------------------------------------------------------
