                          Apache Commons Text
                              Version 1.0
                             Release Notes


INTRODUCTION
============

This document contains the release notes for the 1.0-beta-1 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.


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-beta-1, 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
==========

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

REMOVED
=======

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



                        Release Notes for version 1.0-beta-1


A NOTE ON THE HISTORY OF THE CODE
=================================

The codebase began in the fall of 2014 as a location for housing algorithms for
operating 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
============

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

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

CHANGES
=======

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

REMOVED
=======

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


Historical list of changes: http://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:

http://commons.apache.org/text/

Have fun!
-Apache Commons Text team