diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 13b19a6..e16c9b2 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -2,7 +2,7 @@
             RELEASE NOTES
             2021-03-06
 
-The Apache Commons VFS Project team is pleased to announce the release of Apache Commons VFS Project 2.8.0.
+The Apache Commons VFS Project team is pleased to announce the release of Apache Commons VFS Project 2.8.0-SNAPSHOT.
 
 Apache Commons VFS is a Virtual File System library.
 
@@ -65,7 +65,7 @@
 o           Update maven-checkstyle-plugin 3.1.1 -> 3.1.2. Thanks to Gary Gregory.
 o           Update org.apache.httpcomponents:httpcore-nio 4.4.13 -> 4.4.14. Thanks to Gary Gregory.
 o           Modify some calls of method Collection.toArray #145. Thanks to PeterAlfredLee, Gary Gregory.
-o           Update commons.japicmp.version 0.14.3 -> 0.15.2. Thanks to Gary Gregory.
+o           Update commons.japicmp.version 0.14.3 -> 0.15.3. Thanks to Gary Gregory.
 o           Minor Improvements, #152, #156, #160. Thanks to Arturo Bernal.
 o           Update commons.spotbugs.version 4.1.4 -> 4.2.0. Thanks to Gary Gregory.
 o           Update commons.spotbugs.impl.version 4.1.3 -> 4.2.0. Thanks to Gary Gregory.
diff --git a/commons-vfs2-examples/README.md b/commons-vfs2-examples/README.md
index 8603ffe..65b4fe0 100644
--- a/commons-vfs2-examples/README.md
+++ b/commons-vfs2-examples/README.md
@@ -14,132 +14,93 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
+<!---
+ +======================================================================+
+ |****                                                              ****|
+ |****      THIS FILE IS GENERATED BY THE COMMONS BUILD PLUGIN      ****|
+ |****                    DO NOT EDIT DIRECTLY                      ****|
+ |****                                                              ****|
+ +======================================================================+
+ | TEMPLATE FILE: readme-md-template.md                                 |
+ | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
+ +======================================================================+
+ |                                                                      |
+ | 1) Re-generate using: mvn commons-build:readme-md                    |
+ |                                                                      |
+ | 2) Set the following properties in the component's pom:              |
+ |    - commons.componentid (required, alphabetic, lower case)          |
+ |    - commons.release.version (required)                              |
+ |                                                                      |
+ | 3) Example Properties                                                |
+ |                                                                      |
+ |  <properties>                                                        |
+ |    <commons.componentid>math</commons.componentid>                   |
+ |    <commons.release.version>1.2</commons.release.version>            |
+ |  </properties>                                                       |
+ |                                                                      |
+ +======================================================================+
+--->
+Apache Commons VFS Examples
+===================
 
-# Test Provider(s) with the Shell
+[![Travis-CI Status](https://travis-ci.org/apache/commons-vfs.svg)](https://travis-ci.org/apache/commons-vfs)
+[![GitHub Actions Status](https://github.com/apache/commons-vfs/workflows/Java%20CI/badge.svg)](https://github.com/apache/commons-vfs/actions)
+[![Coverage Status](https://coveralls.io/repos/apache/commons-vfs/badge.svg)](https://coveralls.io/r/apache/commons-vfs)
+[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-vfs2-examples/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-vfs2-examples/)
+[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-vfs2-examples/2.8.0.svg)](https://javadoc.io/doc/org.apache.commons/commons-vfs2-examples/2.8.0)
 
-## Build modules in the parent folder
+Apache Commons VFS is a Virtual File System library - Examples.
 
-    mvn clean install
+Documentation
+-------------
 
-## Test `http3` and `http3s` providers
+More information can be found on the [Apache Commons VFS Examples homepage](https://commons.apache.org/proper/commons-vfs).
+The [Javadoc](https://commons.apache.org/proper/commons-vfs/apidocs) can be browsed.
+Questions related to the usage of Apache Commons VFS Examples should be posted to the [user mailing list][ml].
 
-    mvn -Pshell -Dhttp3
+Where can I get the latest release?
+-----------------------------------
+You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-vfs/download_vfs.cgi).
 
-## Test `http4` and `http4s` providers
+Alternatively you can pull it from the central Maven repositories:
 
-    mvn -Pshell -Dhttp4
+```xml
+<dependency>
+  <groupId>org.apache.commons</groupId>
+  <artifactId>commons-vfs2-examples</artifactId>
+  <version>2.8.0</version>
+</dependency>
+```
 
-## Test `http5` and `http5s` providers
+Contributing
+------------
 
-    mvn -Pshell -Dhttp5
+We accept Pull Requests via GitHub. The [developer mailing list][ml] is the main channel of communication for contributors.
+There are some guidelines which will make applying PRs easier for us:
++ No tabs! Please use spaces for indentation.
++ Respect the code style.
++ Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
++ Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running ```mvn clean test```.
 
-## Test all `http*` and `http*s` providers together
+If you plan to contribute on a regular basis, please consider filing a [contributor license agreement](https://www.apache.org/licenses/#clas).
+You can learn more about contributing via GitHub in our [contribution guidelines](CONTRIBUTING.md).
 
-    mvn -Pshell -Dhttp3 -Dhttp4 -Dhttp5
+License
+-------
+This code is under the [Apache Licence v2](https://www.apache.org/licenses/LICENSE-2.0).
 
-## Test `webdav3` providers
+See the `NOTICE.txt` file for required notices and attributions.
 
-    mvn -Pshell -Dwebdav3
+Donations
+---------
+You like Apache Commons VFS Examples? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support the development.
 
-## Test `webdav4` and `webdav4s` providers
+Additional Resources
+--------------------
 
-    mvn -Pshell -Dwebdav4
++ [Apache Commons Homepage](https://commons.apache.org/)
++ [Apache Issue Tracker (JIRA)](https://issues.apache.org/jira/browse/VFS)
++ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
++ `#apache-commons` IRC channel on `irc.freenode.org`
 
-## Example Test Scenario with HTTP3 / HTTP4 / HTTP5
-
-    mvn -Pshell -Dhttp3 -Dhttp4 -Dhttp5
-    ...
-    cd http3://repo1.maven.org/maven2/org/apache/commons/commons-vfs2/
-    ...
-    cat maven-metadata.xml
-    ...
-    cd http3s://repo1.maven.org/maven2/org/apache/commons/commons-vfs2/
-    ...
-    cat maven-metadata.xml
-    ...
-    cd http4://repo1.maven.org/maven2/org/apache/commons/commons-vfs2/
-    ...
-    cat maven-metadata.xml
-    ...
-    cd http4s://repo1.maven.org/maven2/org/apache/commons/commons-vfs2/
-    ...
-    cat maven-metadata.xml
-    ...
-    cd http5://repo1.maven.org/maven2/org/apache/commons/commons-vfs2/
-    ...
-    cat maven-metadata.xml
-    ...
-    cd http5s://repo1.maven.org/maven2/org/apache/commons/commons-vfs2/
-    ...
-    cat maven-metadata.xml
-    ...
-    cd http://repo1.maven.org/maven2/org/apache/commons/commons-vfs2/
-    ...
-    cat maven-metadata.xml
-    ...
-    cd https://repo1.maven.org/maven2/org/apache/commons/commons-vfs2/
-    ...
-    cat maven-metadata.xml
-    ...
-    pwd
-    > Current folder is https://repo1.maven.org/maven2/org/apache/commons/commons-vfs2
-    pwfs
-    > FileSystem of current folder is org.apache.commons.vfs2.provider.http.HttpFileSystem@668be11a (root: https://repo1.maven.org/)
-    ...
-    quit
-    
-
-
-## Test with custom providers configuration
-
-Set `-Dproviders=<custom_providers.xml_resource_name>`.
-
-    mvn -Pshell -Dhttp3 -Dhttp4 -Dproviders=providers-http4-default.xml
-    ...
-    Custom providers configuration used: file:/tmp/commons-vfs/commons-vfs2-examples/target/classes/providers-http4-default.xml
-    VFS Shell null
-    cd http://repo1.maven.org/maven2/org/apache/commons/commons-vfs2/
-    > Current folder is http://repo1.maven.org/maven2/org/apache/commons/commons-vfs2
-    pwd
-    > Current folder is http://repo1.maven.org/maven2/org/apache/commons/commons-vfs2
-    pwfs
-    > FileSystem of current folder is org.apache.commons.vfs2.provider.http4.Http4FileSystem@6e012f9b (root: http://repo1.maven.org/)
-    ...
-
-## Example Test Scenario with WEBDAV3
-
-(After starting a modern WebDAV server such as Apache Jackrabbit Standalone...)
-
-    mvn -Pshell -Dwebdav3
-    cp http3://commons.apache.org/downloads/index.html webdav3://admin:admin@localhost:8080/repository/default/index.html
-    cd webdav3://admin:admin@localhost:8080/repository/default/
-    ls
-    > > Contents of webdav3://admin:admin@localhost:8080/repository/default
-    test.txt
-    index.html
-    cat index.html
-    ...
-
-## Example Test Scenario with WEBDAV4
-
-(After starting a modern WebDAV server such as Apache Jackrabbit Standalone...)
-
-    mvn -Pshell -Dwebdav4
-    cp http4://commons.apache.org/downloads/index.html webdav4://admin:admin@localhost:8080/repository/default/index.html
-    cd webdav4://admin:admin@localhost:8080/repository/default/
-    ls
-    > > Contents of webdav4://admin:admin@localhost:8080/repository/default
-    test.txt
-    index.html
-    cat index.html
-    ...
-    cp http4://commons.apache.org/downloads/index.html webdav4s://admin:admin@67d6eab2.ngrok.io/repository/default/index2.html
-    cd webdav4://admin:admin@67d6eab2.ngrok.io/repository/default/
-    ls
-    > > Contents of webdav4://admin:admin@localhost:8080/repository/default
-    test.txt
-    index.html
-    index2.html
-    cat index2.html
-    ...
-
+[ml]:https://commons.apache.org/mail-lists.html
diff --git a/src/site/xdoc/download_vfs.xml b/src/site/xdoc/download_vfs.xml
index a039a54..362cbef 100644
--- a/src/site/xdoc/download_vfs.xml
+++ b/src/site/xdoc/download_vfs.xml
@@ -113,44 +113,44 @@
       </p>
     </subsection>
     </section>
-    <section name="Apache Commons VFS Project 2.8.0 (requires Java 8)">
-      <subsection name="Binaries">
-        <table>
-          <tr>
-              <td><a href="[preferred]/commons/vfs/binaries/commons-vfs-2.8.0-bin.tar.gz">commons-vfs-2.8.0-bin.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/vfs/binaries/commons-vfs-2.8.0-bin.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/vfs/binaries/commons-vfs-2.8.0-bin.tar.gz.asc">pgp</a></td>
-          </tr>
-          <tr>
-              <td><a href="[preferred]/commons/vfs/binaries/commons-vfs-2.8.0-bin.zip">commons-vfs-2.8.0-bin.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/vfs/binaries/commons-vfs-2.8.0-bin.zip.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/vfs/binaries/commons-vfs-2.8.0-bin.zip.asc">pgp</a></td>
-          </tr>
-        </table>
-      </subsection>
-      <subsection name="Source">
-        <table>
-          <tr>
-              <td><a href="[preferred]/commons/vfs/source/commons-vfs-2.8.0-src.tar.gz">commons-vfs-2.8.0-src.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/vfs/source/commons-vfs-2.8.0-src.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/vfs/source/commons-vfs-2.8.0-src.tar.gz.asc">pgp</a></td>
-          </tr>
-          <tr>
-              <td><a href="[preferred]/commons/vfs/source/commons-vfs-2.8.0-src.zip">commons-vfs-2.8.0-src.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/vfs/source/commons-vfs-2.8.0-src.zip.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/vfs/source/commons-vfs-2.8.0-src.zip.asc">pgp</a></td>
-          </tr>
-        </table>
-      </subsection>
-    </section>
-    <section name="Archives">
-        <p>
-          Older releases can be obtained from the archives.
-        </p>
-        <ul>
-          <li class="download"><a href="[preferred]/commons/vfs/">browse download area</a></li>
-          <li><a href="https://archive.apache.org/dist/commons/vfs/">archives...</a></li>
-        </ul>
-    </section>
-  </body>
-</document>
+    <section name="Apache Commons VFS Project 2.8.0 (requires Java 8)">
+      <subsection name="Binaries">
+        <table>
+          <tr>
+              <td><a href="[preferred]/commons/vfs/binaries/commons-vfs-2.8.0-bin.tar.gz">commons-vfs-2.8.0-bin.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/vfs/binaries/commons-vfs-2.8.0-bin.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/vfs/binaries/commons-vfs-2.8.0-bin.tar.gz.asc">pgp</a></td>
+          </tr>
+          <tr>
+              <td><a href="[preferred]/commons/vfs/binaries/commons-vfs-2.8.0-bin.zip">commons-vfs-2.8.0-bin.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/vfs/binaries/commons-vfs-2.8.0-bin.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/vfs/binaries/commons-vfs-2.8.0-bin.zip.asc">pgp</a></td>
+          </tr>
+        </table>
+      </subsection>
+      <subsection name="Source">
+        <table>
+          <tr>
+              <td><a href="[preferred]/commons/vfs/source/commons-vfs-2.8.0-src.tar.gz">commons-vfs-2.8.0-src.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/vfs/source/commons-vfs-2.8.0-src.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/vfs/source/commons-vfs-2.8.0-src.tar.gz.asc">pgp</a></td>
+          </tr>
+          <tr>
+              <td><a href="[preferred]/commons/vfs/source/commons-vfs-2.8.0-src.zip">commons-vfs-2.8.0-src.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/vfs/source/commons-vfs-2.8.0-src.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/vfs/source/commons-vfs-2.8.0-src.zip.asc">pgp</a></td>
+          </tr>
+        </table>
+      </subsection>
+    </section>
+    <section name="Archives">
+        <p>
+          Older releases can be obtained from the archives.
+        </p>
+        <ul>
+          <li class="download"><a href="[preferred]/commons/vfs/">browse download area</a></li>
+          <li><a href="https://archive.apache.org/dist/commons/vfs/">archives...</a></li>
+        </ul>
+    </section>
+  </body>
+</document>
