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">
+ <major>.<minor>.<micro> \[-M<milestone number> or -RC<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.