You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by bu...@apache.org on 2019/03/14 01:50:41 UTC
svn commit: r1041808 - in /websites/staging/mina/trunk/content: ./
mina-project/2.1-vs-2.0.html mina-project/downloads_old.html
mina-project/news.html
Author: buildbot
Date: Thu Mar 14 01:50:41 2019
New Revision: 1041808
Log:
Staging update by buildbot for mina
Added:
websites/staging/mina/trunk/content/mina-project/2.1-vs-2.0.html
Modified:
websites/staging/mina/trunk/content/ (props changed)
websites/staging/mina/trunk/content/mina-project/downloads_old.html
websites/staging/mina/trunk/content/mina-project/news.html
Propchange: websites/staging/mina/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Mar 14 01:50:41 2019
@@ -1 +1 @@
-1855398
+1855471
Added: websites/staging/mina/trunk/content/mina-project/2.1-vs-2.0.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/2.1-vs-2.0.html (added)
+++ websites/staging/mina/trunk/content/mina-project/2.1-vs-2.0.html Thu Mar 14 01:50:41 2019
@@ -0,0 +1,243 @@
+<!DOCTYPE html>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<html>
+<head>
+ <title>MINA 2.1.x vs MINA 2.0.x — Apache MINA</title>
+
+ <link href="./../css/common.css" rel="stylesheet" type="text/css">
+ <link href="./../css/mina.css" rel="stylesheet" type="text/css">
+
+
+ <link rel="shortcut icon" href="./../staticresources/images/mina-icon_16x16.png"/>
+
+</head>
+ <body>
+ <div id="container">
+ <div id="header">
+ <div id="subProjectsNavBar">
+ <a href="./../">
+
+ Apache MINA Project
+
+ </a>
+ |
+ <a href="./../mina-project/index.html">
+
+ <strong>MINA</strong>
+
+ </a>
+ |
+ <a href="./../asyncweb-project/index.html">
+
+ AsyncWeb
+
+ </a>
+ |
+ <a href="./../ftpserver-project/index.html">
+
+ FtpServer
+
+ </a>
+ |
+ <a href="./../sshd-project/index.html">
+
+ SSHD
+
+ </a>
+ |
+ <a href="./../vysper-project/index.html">
+
+ Vysper
+
+ </a>
+ </div><!-- subProjectsNavBar -->
+ </div><!-- header -->
+ <div id="content">
+ <div id="leftColumn">
+
+
+
+
+
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
+
+ <h5>Latest Downloads</h5>
+ <ul>
+ <li><a href="./../mina-project/downloads_2_0.html">Mina 2.0.20</a></li>
+ <li><a href="./../mina-project/downloads_2_1.html">Mina 2.1.0</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.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>
+ <li><a href="./../mina-project/quick-start-guide.html" class="external-link" rel="nofollow">Quick Start Guide</a></li>
+ <li><a href="./../mina-project/faq.html" class="external-link" rel="nofollow">FAQ</a></li>
+ </ul>
+ <h5>Resources</h5>
+ <ul>
+ <li><a href="./../mina-project/mailing-lists.html" class="external-link" rel="nofollow">Mailing lists & IRC</a></li>
+ <li><a href="./../mina-project/issue-tracking.html" class="external-link" rel="nofollow">Issue tracking</a></li>
+ <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 2.0.20</a></li>
+ <li><a href="./../mina-project/gen-docs/latest-2.1/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc 2.1.0</a></li>
+ <li><a href="./../mina-project/gen-docs/latest-2.0/xref/index.html" class="external-link" rel="nofollow">API xref 2.0.20</a></li>
+ <li><a href="./../mina-project/gen-docs/latest-2.1/xref/index.html" class="external-link" rel="nofollow">API xref 2.1.0</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>
+ <li><a href="./../mina-project/developer-guide.html" class="external-link" rel="nofollow">Developers Guide</a></li>
+ <li><a href="./../mina-project/related-projects.html" class="external-link" rel="nofollow">Related Projects</a></li>
+ <li><a href="https://people.apache.org/~vgritsenko/stats/projects/mina.html" class="external-link" rel="nofollow">Statistics</a></li>
+ </ul>
+
+
+ <h5>Community</h5>
+ <ul>
+ <li><a href="https://www.apache.org/foundation/contributing.html" class="external-link" rel="nofollow">Contributing</a></li>
+ <li><a href="./../contributors.html" class="external-link" rel="nofollow">Team</a></li>
+ <li><a href="./../special-thanks.html" class="external-link" rel="nofollow">Special Thanks</a></li>
+ <li><a href="https://www.apache.org/security/" class="external-link" rel="nofollow">Security</a></li>
+ </ul>
+
+
+ <h5>About Apache</h5>
+ <ul>
+ <li><a href="https://www.apache.org" class="external-link" rel="nofollow">Apache main site</a></li>
+ <li><a href="https://www.apache.org/licenses/" class="external-link" rel="nofollow">License</a></li>
+ <li><a href="https://www.apache.org/foundation/sponsorship.html" title="The ASF sponsorship program" class="external-link" rel="nofollow">Sponsorship program</a></li>
+ <li><a href="https://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</a></li>
+ </ul>
+
+
+ <h3><a name="Navigation-Upcoming"></a>Upcoming</h3>
+ <ul>
+ <li>No event</li>
+ </ul>
+
+</div>
+
+<!-- navigation -->
+
+
+ </div><!-- leftColumn -->
+ <div id="rightColumn">
+
+
+
+
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="21x-vs-20x-differences">2.1.x vs 2.0.x differences<a class="headerlink" href="#21x-vs-20x-differences" title="Permanent link">¶</a></h1>
+<p>The way an application is informed that a session has been secured (ie, the SSL/TLS handshake has been successfully colmpleted) was to use a notification system. A specific message was pushed for that purpose, up to the client application to check that message. It forced the application implementer to inject a special session attribute (<em>SslFilter.USE_NOTIFICATION</em>), which is a bit heavy.</p>
+<p>It was decided to change that and make it easier for the application to get this information. The idea was to add a new event being propagated to the <em>IoHandler</em> interface, up to the application to react to such an event or not. </p>
+<h2 id="secure-session-detection-in-apache-mina-20x">Secure session detection in Apache MINA 2.0.x<a class="headerlink" href="#secure-session-detection-in-apache-mina-20x" title="Permanent link">¶</a></h2>
+<p>The following application code is to be used if the application needs to know if the session has been secured or not:</p>
+<p>:::java
+ connector.setHandler(new IoHandlerAdapter() {
+ @Override
+ public void sessionCreated(IoSession session) throws Exception {
+ // Add the SSL notification in the session's attribute liste
+ session.setAttribute(SslFilter.USE_NOTIFICATION, Boolean.TRUE);
+ }
+ ...
+ @Override
+ public void messageReceived(IoSession session, Object message) throws Exception {
+ // Check if the 'fake' session secured message notification has been received
+ if (message == SslFilter.SESSION_SECURED) {
+ counter.countDown();
+ }
+ }
+ } </p>
+<p>As we can see in this piece of code, this is a two step process:
+<em> first we have to inform our session that we want to be informaed about the secured status
+</em> second we have to check for every received message if the session has been secured</p>
+<p>This is a bit clumsy, as the check has to be done in the <em>messageReceived</em> event, which is clearly mixing concepts (the remote peer never sends such a message)</p>
+<h2 id="secure-session-detection-in-apache-mina-21x">Secure session detection in Apache MINA 2.1.x<a class="headerlink" href="#secure-session-detection-in-apache-mina-21x" title="Permanent link">¶</a></h2>
+<p>The idea was to extend the <em>IoHandler</em> interface with a generic <em>event</em> method that can be used to be informed about whatever type of event the session is subject to, beside the already processed events (session created, closed, etc).</p>
+<p>The <em>SslHandler</em> code has been modified to fire this event when the session has been secured, using a dedicated event, <em>SslEvent.SECURED</em>.
+We also have modified the <em>SslFilter</em> code to generate a event when the session is not anymore secured, sending the <em>SslEvent.UNSECURED</em> event.</p>
+<p>The following code show the difference with the previous code :</p>
+<p>:::java
+ connector.setHandler(new IoHandlerAdapter() {
+ @Override
+ public void event(IoSession session, FilterEvent event) throws Exception {
+ if (event == SslEvent.SECURED ) {
+ // DO whatever the application needs to do when the session is secured
+ }
+ }</p>
+<p>As we can see, we don't need to initialize the session telling it to inform the application through a notification: this will be done no matter what.</p>
+<h2 id="why-is-it-api-incompatible">Why is it API incompatible ?<a class="headerlink" href="#why-is-it-api-incompatible" title="Permanent link">¶</a></h2>
+<p>The <em>event</em> addition in the <em>IoHandler</em> interface does not break your code: we always have an abstract implementation that will handle the events if your application does not.</p>
+<p>The real issue is that if your application was using the Notification mechanism for that purpose, the new version will not send you this specific message(<em>SslFilter.SESSION_SECURED</em>). </p>
+<h2 id="migration">Migration<a class="headerlink" href="#migration" title="Permanent link">¶</a></h2>
+<p>This is pretty straightforward :
+<em> get rid of the notification declaration by removing the <em>session.setAttribute(SslFilter.USE_NOTIFICATION, Boolean.TRUE)</em> code.</em> implement the <em>event(IoSession session, FilterEvent event)</em> method in your application handler, checking for the <em>SslEvent.SECURED</em>/<em>SslEvent.UNSECURED</em> specific events.</p>
+<p>and that's it !</p>
+<h2 id="future-evolution">Future evolution<a class="headerlink" href="#future-evolution" title="Permanent link">¶</a></h2>
+<p>The added event mechanism could be used to other purposes, and that includes user specific needs. It's possible to write a specific filter that will send a dedicated <em>FilterEvent</em> instance, for the application to process it. </p>
+
+
+
+ </div><!-- rightColumn -->
+ <div id="endContent"></div>
+ </div><!-- content -->
+ <div id="footer">© 2003-2018, <a href="https://www.apache.org">The Apache Software Foundation</a> - <a href="./../privacy-policy.html">Privacy Policy</a><br />
+ Apache MINA, MINA, Apache Vysper, Vysper, Apache SSHd, SSHd, Apache FtpServer, FtpServer, Apache AsyncWeb, AsyncWeb,
+ Apache, the Apache feather logo, and the Apache Mina project logos are trademarks of The Apache Software Foundation.
+ </div>
+ </div><!-- container -->
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-11074178-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+
+ </script>
+ </body>
+</html>
+
Modified: websites/staging/mina/trunk/content/mina-project/downloads_old.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/downloads_old.html (original)
+++ websites/staging/mina/trunk/content/mina-project/downloads_old.html Thu Mar 14 01:50:41 2019
@@ -246,7 +246,7 @@ h2:hover > .headerlink, h3:hover > .head
</tr>
<tr>
<td align="center">ApacheDS MINA 2.0.8</td>
-<td align="center"><a href="https://archive.apache.org/dist/mina/mina/2.0.8/">Download</a>, <a href="http://mina.apache.org/mina-project/gen-docs/2.0.8/apidocs/">Javadoc</a>, <a href="http://mina.apache.org/mina-project/gen-docs/2.08./xref/">Xref</a></td>
+<td align="center"><a href="https://archive.apache.org/dist/mina/mina/2.0.8/">Download</a>, <a href="http://mina.apache.org/mina-project/gen-docs/2.0.8/apidocs/">Javadoc</a></td>
<td align="center">20/Sep/2014</td>
</tr>
<tr>
Modified: websites/staging/mina/trunk/content/mina-project/news.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/news.html (original)
+++ websites/staging/mina/trunk/content/mina-project/news.html Thu Mar 14 01:50:41 2019
@@ -167,7 +167,14 @@ h2:hover > .headerlink, h3:hover > .head
}
h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
<h1 id="news">News<a class="headerlink" href="#news" title="Permanent link">¶</a></h1>
-<h2 id="mina-2020-released-posted-on-february-24-2018">MINA 2.0.20 released <em>posted on February, 24, 2018</em><a class="headerlink" href="#mina-2020-released-posted-on-february-24-2018" title="Permanent link">¶</a></h2>
+<h2 id="mina-210released-posted-on-march-14-2019">MINA 2.1.0released <em>posted on March, 14, 2019</em><a class="headerlink" href="#mina-210released-posted-on-march-14-2019" title="Permanent link">¶</a></h2>
+<p>The MINA project is pleased to announce a new release, MINA 2.1.0. This is a evolution over the
+2.0.x branch, with some API modification which makes it incompatible.</p>
+<p>That means some effort will be required from application part to be able to use Apache MINA
+2.1.0 as a replacement for Apache MINA 2.0?20.</p>
+<p>Otherwise, every fix applied in Apache MINA 2.0.20 has been ported to this version, so one can still keep going with Apache MINA 2.0.20 which will be maintained for the comming months.</p>
+<p>For any information about the API modification and the impact on existing application, please read the <a href="2.1-vs-2.0.html">2.1 vs 2.0 page</a>.</p>
+<h2 id="mina-2020-released-posted-on-february-24-2019">MINA 2.0.20 released <em>posted on February, 24, 2019</em><a class="headerlink" href="#mina-2020-released-posted-on-february-24-2019" title="Permanent link">¶</a></h2>
<p>The MINA project is pleased to announce a new release, MINA 2.0.20, fixing some API issues:</p>
<ul>
<li>DIRMINA-1092: Removed a spurious printstacktrace</li>