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 <elecha...@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.