Prepare for 1.9-RC1.
diff --git a/README.md b/README.md
index 448b0d3..3c5565d 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@
 [![Build Status](https://travis-ci.org/apache/commons-text.svg)](https://travis-ci.org/apache/commons-text)
 [![Coverage Status](https://coveralls.io/repos/apache/commons-text/badge.svg)](https://coveralls.io/r/apache/commons-text)
 [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-text/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-text/)
-[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-text/1.8.svg)](https://javadoc.io/doc/org.apache.commons/commons-text/1.8)
+[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-text/1.9.svg)](https://javadoc.io/doc/org.apache.commons/commons-text/1.9)
 
 Apache Commons Text is a library focused on algorithms working on strings.
 
@@ -67,7 +67,7 @@
 <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-text</artifactId>
-  <version>1.8</version>
+  <version>1.9</version>
 </dependency>
 ```
 
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 9f24bf8..eb3a4e2 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,4 +1,85 @@
 Apache Commons Text
+Version 1.9
+Release Notes
+
+
+INTRODUCTION:
+
+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.
+
+Changes in this version include:
+
+New features:
+o Add StringMatcher.size(). Thanks to Gary Gregory.
+o Refactor TextStringBuilder.readFrom(Readable), extracting readFrom(CharBuffer) and readFrom(Reader). Thanks to Gary Gregory.
+o Add BiStringLookup and implementation BiFunctionStringLookup. Thanks to Gary Gregory.
+o Add org.apache.commons.text.StringSubstitutor.StringSubstitutor(StringSubstitutor). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.TextStringBuilder(CharSequence). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.drainChar(int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.drainChars(int, int, char[]. int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.isNotEmpty(). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.isReallocated(). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.readFrom(Reader, int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.set(String). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.wrap(char[]). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.wrap(char[], int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.io.StringSubstitutorReader. Thanks to Gary Gregory.
+o Add org.apache.commons.text.lookup.StringLookupFactory.functionStringLookup(Function<String, V>). Thanks to Gary Gregory.
+o Add org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence, int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence, int, int, int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.matcher.StringMatcherFactory.andMatcher(StringMatcher...). Thanks to Gary Gregory.
+o Add org.apache.commons.text.matcher.StringMatcherFactory.stringMatcher(char...). Thanks to Gary Gregory.
+
+Fixed Bugs:
+o TEXT-166:  Removed non-existing parameter from Javadocs and spelled out parameters in throws. Thanks to Mikko Maunu.
+o TEXT-149:  StringEscapeUtils.unescapeCsv doesn't remove quotes at begin and end of string. Thanks to Yuji Konishi.
+o TEXT-174:  ScriptStringLookup does not accept ":" #126. Thanks to furkilic.
+o TEXT-178:  StringSubstitutor incorrectly removes some escape characters. Thanks to Gary Gregory.
+o TEXT-181:  Fix Javadocs #135. Thanks to XenoAmess.
+o TEXT-182:  Fix typos #137. Thanks to XenoAmess.
+o TEXT-183:  Make ConstantStringLookup.constantCache final #136. Thanks to XenoAmess.
+o TEXT-184:  Simplify if in CaseUtils #134. Thanks to XenoAmess.
+
+Changes:
+o [javadoc] Fix compiler warnings in Java code example in Javadoc #124. Thanks to Johan Hammar.
+o TEXT-177:  Update from Apache Commons Lang 3.9 to 3.11. Thanks to Gary Gregory.
+o [build] Skip clirr since we use JApiCmp. Thanks to Gary Gregory.
+o [test] junit-jupiter 5.5.1 -> 5.5.2. Thanks to Gary Gregory.
+o [test] org.assertj:assertj-core 3.13.2 -> 3.16.1. Thanks to Gary Gregory.
+o [build] com.puppycrawl.tools:checkstyle 8.23 -> 8.34. Thanks to Gary Gregory.
+o [build] Update JUnit from 5.5.2 to 5.6.2. Thanks to Gary Gregory.
+o [build] commons.jacoco.version 0.8.4 -> 0.8.5. Thanks to Gary Gregory.
+o [build] commons.javadoc.version 3.1.1 -> 3.2.0. Thanks to Gary Gregory.
+o [build] commons.japicmp.version 0.14.1 -> 0.14.3. Thanks to Gary Gregory.
+o [build] checkstyle.plugin.version 3.1.0 -> 3.1.1. Thanks to Gary Gregory.
+o [build] checkstyle.version 8.27 -> 8.33. Thanks to Gary Gregory.
+o [build] org.apache.commons:commons-parent 48 -> 51. Thanks to Gary Gregory.
+o [build] maven-pmd-plugin 3.12.0 -> 3.13.0. Thanks to Gary Gregory.
+o [build] org.mockito 3.3.3 -> 3.4.4. 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 Apache Commons Text website:
+
+https://commons.apache.org/proper/commons-text
+
+Download page: https://commons.apache.org/proper/commons-textdownload_text.cgi
+
+Have fun!
+-Apache Commons Team
+
+=============================================================================
+
+Apache Commons Text
 Version 1.8
 Release Notes
 
@@ -39,7 +120,6 @@
 
 Download it from https://commons.apache.org/proper/commons-text/download_text.cgi
 
-
 =============================================================================
 
 Apache Commons Text
@@ -77,8 +157,8 @@
 o TEXT-156:  Fix the RegexTokenizer to use a static Pattern
 o TEXT-157:  Remove rounding from JaccardDistance and JaccardSimilarity
 o TEXT-162:  Update Apache Commons Lang from 3.8.1 to 3.9.
-o            Update tests from org.assertj:assertj-core 3.12.1 to 3.12.2.
-o            Update site from com.puppycrawl.tools:checkstyle 8.18 to 8.21.
+o Update tests from org.assertj:assertj-core 3.12.1 to 3.12.2.
+o 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
 
@@ -89,7 +169,6 @@
 
 Download it from https://commons.apache.org/proper/commons-text/download_text.cgi
 
-
 =============================================================================
 
                           Apache Commons Text
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2e7e173..10a4ce4 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -45,7 +45,7 @@
   </properties>
   <body>
 
-  <release version="1.9" date="2020-MM-DD" description="Release 1.9. Requires Java 8.">
+  <release version="1.9" date="2020-07-21" description="Release 1.9. Requires Java 8.">
     <action issue="TEXT-166" type="fix" dev="kinow" due-to="Mikko Maunu">Removed non-existing parameter from Javadocs and spelled out parameters in throws.</action>
     <action issue="TEXT-149" type="fix" dev="kinow" due-to="Yuji Konishi">StringEscapeUtils.unescapeCsv doesn't remove quotes at begin and end of string.</action>
     <action issue="TEXT-174" type="fix" dev="ggregory" due-to="furkilic">ScriptStringLookup does not accept ":" #126.</action>
diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm
index b4f5e8c..357ff54 100644
--- a/src/changes/release-notes.vm
+++ b/src/changes/release-notes.vm
@@ -67,28 +67,28 @@
 ##
 #macro ( processaction )
 ## Use replaceAll to fix up LF-only line ends on Windows.
-    #set($action=$actionItem.getAction().replaceAll("\n","
+#set($action=$actionItem.getAction().replaceAll("\n","
 "))
 ## Fix up indentation for multi-line action descriptions
-    #set($action=$action.replaceAll("(?m)^  +",$indent2))
-    #if ($actionItem.getIssue())
-        #set($issue="$actionItem.getIssue():")
-    ## Pad shorter issue numbers
-        #if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
-        #if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
-        #if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
-    #else
-        #set($issue=$indent1)
-    #end
-    #if ($actionItem.getDueTo())
-        #set($dueto=" Thanks to $actionItem.getDueTo().")
-    #else
-        #set($dueto="")
-    #end
+#set($action=$action.replaceAll("(?m)^  +",$indent2))
+#if ($actionItem.getIssue())
+#set($issue="$actionItem.getIssue():")
+## Pad shorter issue numbers
+#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
+#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
+#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
+#else
+#set($issue=$indent1)
+#end
+#if ($actionItem.getDueTo())
+#set($dueto=" Thanks to $actionItem.getDueTo().")
+#else
+#set($dueto="")
+#end
 o $issue ${action}$dueto
-    #set($action="")
-    #set($issue="")
-    #set($dueto="")
+#set($action="")
+#set($issue="")
+#set($dueto="")
 #end
 ##
 #if ($release.getActions().size() == 0)
@@ -97,21 +97,21 @@
 Changes in this version include:
 
 #if ($release.getActions('add').size() !=0)
-- New Features
+New features:
 #foreach($actionItem in $release.getActions('add'))
 #processaction()
-#end
+#end 
 #end
 
 #if ($release.getActions('fix').size() !=0)
-- Fixed Bugs
+Fixed Bugs:
 #foreach($actionItem in $release.getActions('fix'))
 #processaction()
 #end
 #end
 
 #if ($release.getActions('update').size() !=0)
-- Changes
+Changes:
 #foreach($actionItem in $release.getActions('update'))
 #processaction()
 #end
@@ -133,4 +133,7 @@
 
 ${project.url}
 
-Download it from ${project.url}/download_text.cgi
+Download page: ${project.url}download_text.cgi
+
+Have fun!
+-Apache Commons Team
diff --git a/src/site/xdoc/download_text.xml b/src/site/xdoc/download_text.xml
index eea4f02..dc35f81 100644
--- a/src/site/xdoc/download_text.xml
+++ b/src/site/xdoc/download_text.xml
@@ -113,32 +113,32 @@
       </p>
     </subsection>
     </section>
-    <section name="Apache Commons Text 1.8 (Java 8+)">
+    <section name="Apache Commons Text 1.9 (Java 8+)">
       <subsection name="Binaries">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/text/binaries/commons-text-1.8-bin.tar.gz">commons-text-1.8-bin.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.8-bin.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.8-bin.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/text/binaries/commons-text-1.9-bin.tar.gz">commons-text-1.9-bin.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.9-bin.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.9-bin.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/text/binaries/commons-text-1.8-bin.zip">commons-text-1.8-bin.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.8-bin.zip.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.8-bin.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/text/binaries/commons-text-1.9-bin.zip">commons-text-1.9-bin.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.9-bin.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.9-bin.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
       <subsection name="Source">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/text/source/commons-text-1.8-src.tar.gz">commons-text-1.8-src.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.8-src.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.8-src.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/text/source/commons-text-1.9-src.tar.gz">commons-text-1.9-src.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.9-src.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.9-src.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/text/source/commons-text-1.8-src.zip">commons-text-1.8-src.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.8-src.zip.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.8-src.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/text/source/commons-text-1.9-src.zip">commons-text-1.9-src.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.9-src.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.9-src.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>