You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2022/07/18 12:53:21 UTC

[mina-site] branch master updated: Updated the site for MINA 2.2.0 release

This is an automated email from the ASF dual-hosted git repository.

elecharny pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-site.git


The following commit(s) were added to refs/heads/master by this push:
     new 1acfed8bf Updated the site for MINA 2.2.0 release
1acfed8bf is described below

commit 1acfed8bf9f089265643a1af1e000db908b4bef3
Author: emmanuel lecharny <el...@apache.org>
AuthorDate: Mon Jul 18 14:53:10 2022 +0200

    Updated the site for MINA 2.2.0 release
---
 config.toml                          |  1 +
 layouts/_default/baseof.html         |  1 +
 layouts/mina/baseof.html             |  4 ++
 source/mina-project/2.2-vs-2.1.md    | 70 ++++++++++++++++++++++++++++++
 source/mina-project/downloads_2_2.md | 83 ++++++++++++++++++++++++++++++++++++
 5 files changed, 159 insertions(+)

diff --git a/config.toml b/config.toml
index 166f22c5b..e930767c6 100644
--- a/config.toml
+++ b/config.toml
@@ -36,6 +36,7 @@ date = ["date", ":filename", "publishDate", "lastmod"]
 version_asyncweb = "2.0.0-SNAPSHOT"
 version_mina_2_0 = "2.0.23"
 version_mina_2_1 = "2.1.6"
+version_mina_2_2 = "2.2.0"
 version_ftpserver_1_1 = "1.1.4"
 version_ftpserver_1_2 = "1.2.0"
 version_sshd = "2.8.0"
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 4bec5727a..c42659750 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -33,6 +33,7 @@
                 <ul>
                     <li><a href="/downloads-mina_2_0.html">Mina {{ .Site.Params.version_mina_2_0 }}</a></li>
                     <li><a href="/downloads-mina_2_1.html">Mina {{ .Site.Params.version_mina_2_1 }}</a></li>
+                    <li><a href="/downloads-mina_2_2.html">Mina {{ .Site.Params.version_mina_2_2 }}</a></li>
                     <li><a href="/downloads-ftpserver_1_1.html">FtpServer {{ .Site.Params.version_ftpserver_1_1 }}</a></li>
                     <li><a href="/downloads-ftpserver_1_2.html">FtpServer {{ .Site.Params.version_ftpserver_1_2 }}</a></li>
                     <li><a href="/downloads-sshd.html">SSHD {{ .Site.Params.version_sshd }}</a></li>
diff --git a/layouts/mina/baseof.html b/layouts/mina/baseof.html
index 8a660c49f..05e47a8c2 100644
--- a/layouts/mina/baseof.html
+++ b/layouts/mina/baseof.html
@@ -33,12 +33,14 @@
                 <ul>
                     <li><a href="/mina-project/downloads_2_0.html">Mina {{ .Site.Params.version_mina_2_0 }}</a></li>
                     <li><a href="/mina-project/downloads_2_1.html">Mina {{ .Site.Params.version_mina_2_1 }}</a></li>
+                    <li><a href="/mina-project/downloads_2_2.html">Mina {{ .Site.Params.version_mina_2_2 }}</a></li>
                     <li><a href="/mina-project/downloads_old.html">Mina old versions</a></li>
                 </ul>
                 <h5>Documentation</h5>
                 <ul>
                     <li><a href="/mina-project/documentation.html" class="external-link" rel="nofollow">Base documentation</a></li>
                     <li><a href="/mina-project/userguide/user-guide-toc.html" class="external-link" rel="nofollow">User guide</a></li>
+                    <li><a href="/mina-project/2.2-vs-2.1.html" class="external-link" rel="nofollow">2.2 vs 2.1</a></li>
                     <li><a href="/mina-project/2.1-vs-2.0.html" class="external-link" rel="nofollow">2.1 vs 2.0</a></li>
                     <li><a href="/mina-project/features.html" class="external-link" rel="nofollow">Features</a></li>
                     <li><a href="/mina-project/road-map.html" class="external-link" rel="nofollow">Road Map</a></li>
@@ -52,8 +54,10 @@
                     <li><a href="/mina-project/sources.html" class="external-link" rel="nofollow">Sources</a></li>
                     <li><a href="/mina-project/gen-docs/latest-2.0/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc {{ .Site.Params.version_mina_2_0 }}</a></li>
                     <li><a href="/mina-project/gen-docs/latest-2.1/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc {{ .Site.Params.version_mina_2_1 }}</a></li>
+                    <li><a href="/mina-project/gen-docs/latest-2.2/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc {{ .Site.Params.version_mina_2_2 }}</a></li>
                     <li><a href="/mina-project/gen-docs/latest-2.0/xref/index.html" class="external-link" rel="nofollow">API xref  {{ .Site.Params.version_mina_2_0 }}</a></li>
                     <li><a href="/mina-project/gen-docs/latest-2.1/xref/index.html" class="external-link" rel="nofollow">API xref {{ .Site.Params.version_mina_2_1 }}</a></li>
+                    <li><a href="/mina-project/gen-docs/latest-2.2/xref/index.html" class="external-link" rel="nofollow">API xref {{ .Site.Params.version_mina_2_2 }}</a></li>
                     <li><a href="/mina-project/performances.html" class="external-link" rel="nofollow">Performances</a></li>
                     <li><a href="/mina-project/testimonials.html" class="external-link" rel="nofollow">Testimonials</a></li>
                     <li><a href="/mina-project/conferences.html" class="external-link" rel="nofollow">Conferences</a></li>
diff --git a/source/mina-project/2.2-vs-2.1.md b/source/mina-project/2.2-vs-2.1.md
new file mode 100644
index 000000000..499feb3ea
--- /dev/null
+++ b/source/mina-project/2.2-vs-2.1.md
@@ -0,0 +1,70 @@
+---
+type: mina
+title: MINA 2.2.x vs MINA 2.1.x
+---
+
+# 2.2.x vs 2.1.x differences
+
+The **SSL/TLS** handling has been totally rewritten in **MINA 2.2**. This has an impact in many areas.
+
+## Removal of the SslFilter.DISABLE_ENCRYPTION_ONCE attribute
+
+This attribute was used in previous **MINA** versions to insure that we can send some clear text message to the remote peer while establishing the TLS connection when using the **startTLS** command.
+
+The idea is that the **startTLS** command is send by an application (a **LDAP** client, for instance), which tells the server it should establish the **SSL/TLS** layer. But the problem is that the server should be able to inform the clinet that the **SSL/TLS** layer is up and running, in clear text, which is not possible as the **SSL/TLS** layer is already fonctionning...
+
+This kind of chicken/egg problem was solved by giving the opportunity to the **SSL/TLS** layer to send back the **startTLS** response to the client in clear text, assuming it's the first server's message. A kind of a hack.
+
+In **MINA 2.2**, this attribute has been removed and replaced by either a filter to be added, or by encapsulating the message that should not be encrypted into an instance that implements the **DisableEncryptWriteRequest** interface.
+
+Typically, in **Apache Directory**, we use this filter:
+
+
+```java
+public class StartTlsFilter extends IoFilterAdapter 
+{
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void filterWrite( NextFilter nextFilter, IoSession session, WriteRequest writeRequest ) throws Exception 
+    {
+        if ( writeRequest.getOriginalMessage() instanceof StartTlsResponse )
+        {
+            // We need to bypass the SslFilter
+            IoFilterChain chain = session.getFilterChain();
+            
+            for ( IoFilterChain.Entry entry : chain.getAll() )
+            {
+                IoFilter filter = entry.getFilter();
+                
+                if ( filter instanceof SslFilter )
+                {
+                    entry.getNextFilter().filterWrite( session, writeRequest );
+                }
+            }
+        }
+        else
+        {
+            nextFilter.filterWrite( session, writeRequest );
+        }
+    }
+}
+
+```
+
+As we can see in this piece of code, we check if the message is a **startTLS** response, and if so, we bypass the **SSLFilter**, which leads to the message to be send in clear text.
+
+## Why is it API incompatible ?
+
+The  removal of the **SslFilter.DISABLE_ENCRYPTION_ONCE** attribute make it impossible for application that leverage the **startTLS** command to work, without some code change.
+
+
+## Migration
+
+This is pretty straightforward :
+
+* Create a filter that bypasses the message that should not be encrypted, or encapsulate it into an inswtance that implements the **DisableEncryptWriteRequest** interface
+
+and that's it !
+
diff --git a/source/mina-project/downloads_2_2.md b/source/mina-project/downloads_2_2.md
new file mode 100644
index 000000000..3786f6cca
--- /dev/null
+++ b/source/mina-project/downloads_2_2.md
@@ -0,0 +1,83 @@
+---
+type: mina
+title: MINA 2.1.x Downloads
+---
+
+# Latest MINA Releases
+
+## Apache MINA 2.1.6 <font color="green">stable</font> (Java 8+)
+
+### Binaries
+
+* .tar.gz archive [mina-2.1.6](https://www.apache.org/dyn/closer.lua/mina/mina/2.1.6/apache-mina-2.1.6-bin.tar.gz) (signatures : [SHA256](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-bin.tar.gz.sha256) [SHA512](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-bin.tar.gz.sha512) [ASC](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-bin.tar.gz.asc))
+* .tar.bz2 archive [mina-2.1.6](https://www.apache.org/dyn/closer.lua/mina/mina/2.1.6/apache-mina-2.1.6-bin.tar.bz2) (signatures : [SHA256](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-bin.tar.bz2.sha256) [SHA512](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-bin.tar.bz2.sha512) [ASC](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-bin.tar.bz2.asc))
+* .zip archive [mina-2.1.6](https://www.apache.org/dyn/closer.lua/mina/mina/2.1.6/apache-mina-2.1.6-bin.zip) (signatures : [SHA256](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-bin.zip.sha256) [SHA512](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-bin.zip.sha512) [ASC](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-bin.zip.asc))
+
+### Sources
+
+* .src.tar.gz archive [mina-2.1.6](https://www.apache.org/dyn/closer.lua/mina/mina/2.1.6/apache-mina-2.1.6-src.tar.gz) (signatures : [SHA256](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-src.tar.gz.sha256) [SHA512](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-src.tar.gz.sha512) [ASC](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-src.tar.gz.asc))
+* .src.tar.bz2 archive [mina-2.1.6](https://www.apache.org/dyn/closer.lua/mina/mina/2.1.6/apache-mina-2.1.6-src.tar.bz2) (signatures : [SHA256](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-src.tar.bz2.sha256) [SHA512](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-src.tar.bz2.sha512) [ASC](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-src.tar.bz2.asc))
+* .src.zip archive [mina-2.1.6](https://www.apache.org/dyn/closer.lua/mina/mina/2.1.6/apache-mina-2.1.6-src.zip) (signatures : [SHA256](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-src.zip.sha256) [SHA512](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-src.zip.sha512) [ASC](https://www.apache.org/dist/mina/mina/2.1.6/apache-mina-2.1.6-src.zip.asc))
+
+<div class="note" markdown="1">
+    For people wanting to use the <strong>serial</strong> package, we don't include the <strong>rxtx.jar</strong> library in the releases, as it's under a LGPL license. Please download it from <a href="http://rxtx.qbang.org/wiki/index.php/Download" class="external-link" rel="nofollow">http://rxtx.qbang.org/wiki/index.php/Download</a> or add the associated dependency in your maven pom.xml :
+
+    <dependency>
+        <groupId>org.rxtx</groupId>
+        <artifactId>rxtx</artifactId>
+        <version>2.1.7</version>
+        <scope>provided<scope>
+    </dependency>
+</div>
+
+# Verify the integrity of the files
+
+The PGP signatures can be verified using PGP or GPG. First download the [KEYS](https://downloads.apache.org/mina/KEYS) as well as the asc signature file for the relevant distribution. Then verify the signatures using:
+
+    $ pgpk -a KEYS
+    $ pgpv mina-2.1.6.tar.gz.asc
+
+or
+
+    $ pgp -ka KEYS
+    $ pgp mina-2.1.6.tar.gz.asc
+    
+or
+
+    $ gpg --import KEYS
+    $ gpg --verify mina-2.1.6.tar.gz.asc
+
+
+# Previous Releases
+
+The previous releases can be found [here](https://archive.apache.org/dist/mina/) and [here](https://archive.apache.org/dist/mina/mina/). Please note that the following releases contains a LGPL licensed file, rxtx-2.1.7.jar: 2.0.0-M4, 2.0.0-M5, 2.0.0-M6, 2.0.0-RC1.
+
+# Version Numbering Scheme
+
+The version number of MINA has the following form:
+
+<div class="info" markdown="1">
+    &lt;major>.&lt;minor>.&lt;micro> \[-M&lt;milestone number> or -RC&lt;release candidate number>]
+</div>
+
+This scheme has three number components:
+
+* The __major__ number increases when there are incompatible changes in the API.
+* The __minor__ number increases when a new feature is introduced.
+* The __micro__ number increases when a bug or a trivial change is made.
+
+and an optional label that indicates the maturity of a release:
+
+* __M__ (Milestone) means the feature set can change at any time in the next milestone releases. The last milestone release becomes the first release candidate after a vote.
+* __RC__ (Release Candidate) means the feature set is frozen and the next RC releases will focus on fixing problems unless there is a serious flaw in design. The last release candidate becomes the first GA release after a vote.
+* No label implies __GA__ (General Availability), which means the release is stable enough and therefore ready for production environment.
+
+MINA is not a stand-alone software, so 'the feature set' here also includes the API of the newly introduced features and the overall architecture of the software,
+
+Here's an example that illustrates how MINA version number increases:
+
+<div class="info" markdown="1">
+    2.0.0-M1 -> 2.0.0-M3 -> 2.0.0-M3 -> 2.0.0-M4 ->  2.0.0-RC1 -> 2.0.0-RC2 -> 2.0.0-RC3 -> <strong>2.0.0</strong> -> 2.0.1 -> 2.0.2 -> 2.1.6-M1 ...
+</div>
+
+Please note that we always specify the micro number, even if it's zero.