<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mina-projects on Apache Mina</title>
    <link>https://mina.apache.org/mina-project.html</link>
    <description>Recent content in Mina-projects on Apache Mina</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	<atom:link href="https://mina.apache.org/mina-project/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>1.1 - NIO Overview</title>
      <link>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.1-nio-overview.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.1-nio-overview.html</guid>
      <description>NIO Overview The NIO API was introduced in Java 1.4 and had since been used for wide number of applications. The NIO API covers IO non-blocking operations.
First of all, it&#39;s good to know that MINA is written on top of NIO 1. A new version has been designed in Java 7, NIO-2, we don&#39;t yet benefit from the added features this version is carrying.  It&#39;s also important to know that the N in NIO means New, but we will use the Non-Blocking term in many places.</description>
    </item>
    
    <item>
      <title>1.2 - Why MINA</title>
      <link>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.2-why-mina.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.2-why-mina.html</guid>
      <description>Why MINA ? Writing network applications are generally seen as a burden and perceived as low level development. It is an area which is not frequently studied or known by developers, either because it has been studied in school a long time ago and everything has been forgotten, or because the complexity of the network layer is frequently hidden by higher level layers, so you never get deep into it.</description>
    </item>
    
    <item>
      <title>1.3 Features</title>
      <link>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.3-features.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.3-features.html</guid>
      <description>Features MINA is a simple yet full-featured network application framework which provides:
 Unified API for various transport types:  TCP/IP &amp;amp; UDP/IP via Java NIO Serial communication (RS232) via RXTX In-VM pipe communication You can implement your own!   Filter interface as an extension point; similar to Servlet filters Low-level and high-level API:  Low-level: uses ByteBuffers High-level: uses user-defined message objects and codecs   Highly customizable thread model:  Single thread One thread pool More than one thread pools (i.</description>
    </item>
    
    <item>
      <title>1.4 - First Steps</title>
      <link>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.4-first-steps.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.4-first-steps.html</guid>
      <description>First Steps We will show you how easy it is to use MINA, running a very simple example provided with the MINA package.
The first thing you have to do is to setup your environment when you want to use MINA in your application. We will describe what you need to install and how to run a MINA program. Nothing fancy, just a first taste of MINA&amp;hellip;
Download First, you have to download the latest MINA release from MINA 2.</description>
    </item>
    
    <item>
      <title>1.5 - Summary</title>
      <link>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.5-summary.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1.5-summary.html</guid>
      <description>Summary In this chapter, we looked at MINA based Application Architecture, for Client as well as Server. We also touched upon the implementation of Sample TCP Server/Client, and UDP Server and Client.
In the chapters to come we shall discuss about MINA Core constructs and advanced topics</description>
    </item>
    
    <item>
      <title>2.1 - Application Architecture</title>
      <link>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.1-application-architecture.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.1-application-architecture.html</guid>
      <description>2.1.1 - Server Architecture 2.1.2 - Client Architecture  2.1 - MINA based Application Architecture It&amp;rsquo;s the question most asked : &amp;lsquo;How does a MINA based application look like&amp;rsquo;? In this article lets see what&amp;rsquo;s the architecture of MINA based application. Have tried to gather the information from presentations based on MINA.
A Bird&amp;rsquo;s Eye View :
Here, we can see that MINA is the glue between your application (be it a client or a server) and the underlying network layer, which can be based on TCP, UDP, in-VM communication or even a RS-232C serial protocol for a client.</description>
    </item>
    
    <item>
      <title>2.1.1 - Server Architecture</title>
      <link>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.1.1-server-architecture.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.1.1-server-architecture.html</guid>
      <description>2.1.1 - Server Architecture We have exposed the MINA Application Architecture in the previous section. Let&amp;rsquo;s now focus on the Server Architecture. Basically, a Server listens on a port for incoming requests, process them and send replies. It also creates and handles a session for each client (whenever we have a TCP or UDP based protocol), this will be explain more extensively in the chapter 4.
 IOAcceptor listens on the network for incoming connections/packets For a new connection, a new session is created and all subsequent request from IP Address/Port combination are handled in that Session All packets received for a Session, traverses the Filter Chain as specified in the diagram.</description>
    </item>
    
    <item>
      <title>2.1.2 - Client Architecture</title>
      <link>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.1.2-client-architecture.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.1.2-client-architecture.html</guid>
      <description>2.1.2 - Client Architecture We had a brief look at MINA based Server Architecture, lets see how Client looks like. Clients need to connect to a Server, send message and process the responses.
 Client first creates an IOConnector (MINA Construct for connecting to Socket), initiates a bind with Server Upon Connection creation, a Session is created and is associated with Connection Application/Client writes to the Session, resulting in data being sent to Server, after traversing the Filter Chain All the responses/messages received from Server are traverses the Filter Chain and lands at IOHandler, for processing  </description>
    </item>
    
    <item>
      <title>2.2 - Sample TCP Server</title>
      <link>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.2-sample-tcp-server.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.2-sample-tcp-server.html</guid>
      <description>2.2 - Sample TCP Server This tutorial will walk you through the process of building a MINA based program. This tutorial will walk through building a time server. The following prerequisites are required for this tutorial:
 MINA 2.x Core JDK 1.5 or greater SLF4J 1.3.0 or greater  Log4J 1.2 users: slf4j-api.jar, slf4j-log4j12.jar, and Log4J 1.2.x Log4J 1.3 users: slf4j-api.jar, slf4j-log4j13.jar, and Log4J 1.3.x java.util.logging users: slf4j-api.jar and slf4j-jdk14.jar IMPORTANT: Please make sure you are using the right slf4j-*.</description>
    </item>
    
    <item>
      <title>2.3 - Sample TCP Client</title>
      <link>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.3-sample-tcp-client.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.3-sample-tcp-client.html</guid>
      <description>2.3 - Sample TCP Client We have seen the Client Architecture. Lets explore a sample Client implementation.
We shall use Sumup Client as a reference implementation.
We will remove boiler plate code and concentrate on the important constructs. Below the code for the Client :
public static void main(String[] args) throws Throwable { NioSocketConnector connector = new NioSocketConnector(); connector.setConnectTimeoutMillis(CONNECT_TIMEOUT); if (USE_CUSTOM_CODEC) { connector.getFilterChain().addLast(&amp;#34;codec&amp;#34;, new ProtocolCodecFilter(new SumUpProtocolCodecFactory(false))); } else { connector.getFilterChain().addLast(&amp;#34;codec&amp;#34;, new ProtocolCodecFilter(new ObjectSerializationCodecFactory())); } connector.</description>
    </item>
    
    <item>
      <title>2.4 - Sample UDP Server</title>
      <link>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.4-sample-udp-server.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.4-sample-udp-server.html</guid>
      <description>2.4 - Sample UDP Server We will begin by looking at the code found in the org.apache.mina.example.udp package. To keep life simple, we shall concentrate on MINA related constructs only.
To construct the server, we shall have to do the following:
 Create a Datagram Socket to listen for incoming Client requests (See MemoryMonitor.java) Create an IoHandler to handle the MINA framework generated events (See MemoryMonitorHandler.java)  Here is the first snippet that addresses Point# 1:</description>
    </item>
    
    <item>
      <title>2.5 - Sample UDP Client</title>
      <link>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.5-sample-udp-client.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.5-sample-udp-client.html</guid>
      <description>2.5 -Sample UDP Client Lets look at the client code for the UDP Server from previous section.
To implement the Client we need to do following:
 Create Socket and Connect to Server Set the IoHandler Collect free memory Send the Data to the Server  We will begin by looking at the file MemMonClient.java, found in the org.apache.mina.example.udp.client java package. The first few lines of the code are simple and straightforward.</description>
    </item>
    
    <item>
      <title>2.6 - Summary</title>
      <link>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.6-summary.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2.6-summary.html</guid>
      <description>2.6 - Summary In this chapter, we looked at MINA based Application Architecture, for Client as well as Server. We also touched upon the implementation of Sample TCP Server/Client, and UDP Server and Client.
In the chapters to come we shall discuss about MINA Core constructs and advanced topics</description>
    </item>
    
    <item>
      <title>3.1 - IO Service Introduction</title>
      <link>https://mina.apache.org/mina-project/userguide/ch3-service/ch3.1-io-service.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch3-service/ch3.1-io-service.html</guid>
      <description>3.1 - IoService Introduction IoService provides basic I/O Service and manages I/O Sessions within MINA. Its one of the most crucial part of MINA Architecture. The implementing classes of IoService and child interface, are where most of the low level I/O operations are handled.
IoService Mind Map Let&amp;rsquo;s try to see what are the responsibilities of the IoService and it implementing class AbstractIoService. Let&amp;rsquo;s take a slightly different approach of first using a Mind Map and then jump into the inner working.</description>
    </item>
    
    <item>
      <title>3.2 - IoService Details</title>
      <link>https://mina.apache.org/mina-project/userguide/ch3-service/ch3.2-io-service-details.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch3-service/ch3.2-io-service-details.html</guid>
      <description>3.2 - IoService Details IoService is an interface that is implemented by the two most important classes in MINA :
 IoAcceptor IoConnector  In order to build a server, you need to select an implementation of the IoAcceptor interface. For client applications, you need to implement an implementation of the IoConnector interface.
IoAcceptor Basically, this interface is named because of the accept() method, responsible for the creation of new connections between a client and the server.</description>
    </item>
    
    <item>
      <title>3.3 - Acceptor</title>
      <link>https://mina.apache.org/mina-project/userguide/ch3-service/ch3.3-acceptor.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch3-service/ch3.3-acceptor.html</guid>
      <description>3.3 - Acceptor In order to build a server, you need to select an implementation of the IoAcceptor interface.
IoAcceptor Basically, this interface is named because of the accept() method, responsible for the creation of new connection between a client and the server. The server accepts incoming connection request.
At some point, we could have named this interface &amp;lsquo;Server&amp;rsquo;.
As we may deal with more than one kind of transport (TCP/UDP/&amp;hellip;), we have more than one implementation for this interface.</description>
    </item>
    
    <item>
      <title>3.4 - Connector</title>
      <link>https://mina.apache.org/mina-project/userguide/ch3-service/ch3.4-connector.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch3-service/ch3.4-connector.html</guid>
      <description>3.4 - Connector For client applications, you need to implement an implementation of the IoConnector interface.
IoConnector As we have to use an IoAcceptor for servers, you have to implement the IoConnector. Again, we have many implementation classes :
 NioSocketConnector : the non-blocking Socket transport Connector NioDatagramConnector : the non-blocking UDP transport * Connector* AprSocketConnector : the blocking Socket transport * Connector*, based on APR ProxyConnector : a Connector providing proxy support SerialConnector : a Connector for a serial transport VmPipeConnector : the in-VM * Connector*  Just pick the one that fit your need.</description>
    </item>
    
    <item>
      <title>4.1 - Session Configuration</title>
      <link>https://mina.apache.org/mina-project/userguide/ch4-session/ch4.1-session-configuration.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch4-session/ch4.1-session-configuration.html</guid>
      <description>4.1 - Session Configuration Depending on the Session&amp;rsquo;s type, we can configure various elements. Some of those elements are shared across all the session&amp;rsquo;s type, some other are specific.
We currently support 4 session flavors :
 Socket : support for the TCP transport Datagram : support for the UDP transport Serial : support for the RS232 transport VmPipe : support for the IPC transport  General parameters Here is the list of all the global parameters (they can be set fo any of the Session flavors) :</description>
    </item>
    
    <item>
      <title>4.2 - Session Statistics</title>
      <link>https://mina.apache.org/mina-project/userguide/ch4-session/ch4.2-session-statistics.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch4-session/ch4.2-session-statistics.html</guid>
      <description>4.2 - Session Statistics We keep some statistics in each sessions about what&amp;rsquo;s going on. Not all those statistics are computed fr every message though : some of them are computed on demand.
   Parameter type Description automatic     readBytes long The total number of bytes read since the session was created yes   readBytesThroughput double The number of bytes read per second in the last interval no   readMessages long The total number of messages read since the session was created yes   readMessagesThroughput double The number of messages read per second in the last interval no   scheduledWriteBytes AtomicInteger The number of bytes waiting to be written yes   scheduledWriteMessages AtomicInteger The number of messages waiting to be written yes   writtenBytes long The total number of bytes written since the session was created yes   writtenBytesThroughput double The number of bytes written per second in the last interval no   writtenMessages long The total number of messages written since the session was created yes   writtenMessagesThroughput double The number of messages written per second in the last interval no    All those parameters can be read using getters.</description>
    </item>
    
    <item>
      <title>5.1 - Blacklist Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.1-blacklist-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.1-blacklist-filter.html</guid>
      <description>5.1 - Blacklist Filter This filter blocks connections from blacklisted remote addresses. One can block Addresses or Subnets. In any case, when an event happens on a blocked session, the session will simply be closed. Here are the events this filter handles :
 event (MINA 2.1) messageReceived messageSent sessionCreated sessionIdle sessionOpened  There is no need to handle any other event.
Blocking an address Any address or subnet can be blocked live, ie it does not matter if a session is already active or not, this dynamically activated.</description>
    </item>
    
    <item>
      <title>5.10 - MDC Injection Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.10-mdc-injection-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.10-mdc-injection-filter.html</guid>
      <description>5.10 - MDC Injection Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.11 - NOOP Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.11-noop-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.11-noop-filter.html</guid>
      <description>5.11 - NOOP Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.12 - Profiler Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.12-profiler-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.12-profiler-filter.html</guid>
      <description>5.12 - Profiler Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.13 - Protocol Codec Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.13-protocol-codec-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.13-protocol-codec-filter.html</guid>
      <description>5.13 - Protocol Codec Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.14 - Proxy Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.14-proxy-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.14-proxy-filter.html</guid>
      <description>5.14 - Proxy Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.15 - Reference Counting Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.15-reference-counting-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.15-reference-counting-filter.html</guid>
      <description>5.15 - Reference Counting Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.16 - Request/Response Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.16-request-response-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.16-request-response-filter.html</guid>
      <description>5.16 - Request/Response Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.17 - Session Attribute Initializing Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.17-session-attribute-initializing-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.17-session-attribute-initializing-filter.html</guid>
      <description>5.17 - Session Attribute Initializing Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.18 - Stream Write Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.18-stream-write-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.18-stream-write-filter.html</guid>
      <description>5.18 - Stream Write Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.19 - SSL/TLS Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.19-ssl-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.19-ssl-filter.html</guid>
      <description>5.19 - SSL/TLS Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.2 - Buffered Write Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.2-buffered-write-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.2-buffered-write-filter.html</guid>
      <description>5.2 - Buffered Write Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.20 - Write Request Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.20-write-request-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.20-write-request-filter.html</guid>
      <description>5.20 - Write Request Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.3 - Compression Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.3-compression-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.3-compression-filter.html</guid>
      <description>5.3 - Compression Filter The CompressionFilter class is used to compress data before it gets sent and decompress it when it&amp;rsquo;s received. It uses the JZLIB library.
It only handles two events :
 messageReceived: The received message will be decompressed, if it&amp;rsquo;s contained in a IoBuffer. filterWrite: The message to write will be compressed, assuming it&amp;rsquo;s stored in a IoBuffer (otherwise an exception will be generated).  Configuration It&amp;rsquo;s possible to configure the CompressionFilter, with the listed parameters :</description>
    </item>
    
    <item>
      <title>5.4 - Connection Throttle Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.4-connection-throttle-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.4-connection-throttle-filter.html</guid>
      <description>5.4 - Connection Throttle Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.5 - Error Generating Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.5-error-generating-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.5-error-generating-filter.html</guid>
      <description>5.5 - Error Generating Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.6 - Executor Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.6-executor-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.6-executor-filter.html</guid>
      <description>5.6 - Executor Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.7 - FileRegion Write Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.7-file-region-write-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.7-file-region-write-filter.html</guid>
      <description>5.7 - FileRegion Write Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.8 - KeepAlive Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.8-keep-alive-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.8-keep-alive-filter.html</guid>
      <description>5.8 - KeepAlive Filter TBD&amp;hellip;</description>
    </item>
    
    <item>
      <title>5.9 - Logging Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.9-logging-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5.9-logging-filter.html</guid>
      <description>5.9 - Logging Filter The Logging filter allows an application to logs MINA protocol events while they are transiting on the filters chain. It can be added dynamically (ie, a session may add a filter whenever it wants).
The tracked events are :
 exceptionCaught messageReceived messageSent sessionClosed sessionCreated sessionIdle sessionOpened  The event, filterClose, filterWrite and inputClosed events are not tracked.
Adding the filter This can be done once and for each session, while creating the IoFilterChainBuilder instance :</description>
    </item>
    
    <item>
      <title>6.1 - APR Transport</title>
      <link>https://mina.apache.org/mina-project/userguide/ch6-transports/ch6.1-apr-transport.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch6-transports/ch6.1-apr-transport.html</guid>
      <description>6.1 - APR Transport Introduction APR (Apache Portable Runtime) provide superior scalability, performance, and better integration with native server technologies. APR transport is supported by MINA. In this section, we shall touch base upon how to use APR transport with MINA. We shall the Time Server example for this.
Pre-requisite APR transport depends following components
APR library - Download/install appropriate library for the platform from https://www.apache.org/dist/tomcat/tomcat-connectors/native/
JNI wrapper (tomcat-apr-5.5.23.jar) The jar is shipped with release Put the native library in PATH</description>
    </item>
    
    <item>
      <title>6.2 - Serial Transport</title>
      <link>https://mina.apache.org/mina-project/userguide/ch6-transports/ch6.2-serial-transport.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch6-transports/ch6.2-serial-transport.html</guid>
      <description>6.2 - Serial Transport With the MINA 2.0 you are able to connect to serial port like you use to connect to a TCP/IP port with MINA.
Getting MINA 2.0 You you can download the latest built version (2.0.2).
If you prefer to build the code from the trunk, and need assistance to do so, please consult the Developer Guide.
Prerequisite Useful Information
Before accessing serial port from a Java program you need a native library (.</description>
    </item>
    
    <item>
      <title>Apache MINA Mailing Lists</title>
      <link>https://mina.apache.org/mina-project/mailing-lists.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/mailing-lists.html</guid>
      <description>The Apache MINA team interacts with MINA developers and users via mailing lists. If you have any questions or something to say to us, please subscribe to our user mailing list and post a message. If you would like to contribute to the development of MINA, please subscribe to the developer mailing list.
Do NOT cross post (ie mail to users and dev). Pick the right list
Take a few minutes to read this page :Asking Smart Questions</description>
    </item>
    
    <item>
      <title>Chapter 1 - Getting Started</title>
      <link>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1-getting-started.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1-getting-started.html</guid>
      <description>Chapter 1 - Getting Started In this chapter, we will give you first sense of what is MINA, what is NIO, why we developed a framework on top of NIO and what you will find inside. We will also show you how to run a very simple example of a server run with MINA
 1.1 - NIO Overview 1.2 - Why MINA ? 1.3 - Features 1.4 - First Steps 1.</description>
    </item>
    
    <item>
      <title>Chapter 10 - Executor Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch10-executor-filter/ch10-executor-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch10-executor-filter/ch10-executor-filter.html</guid>
      <description>Chapter 10 - Executor Filter MINA 1.X version let the user define the Thread Model at the Acceptor level. It was part of the Acceptor configuration. This led to complexity, and the MINA team decided to remove this option, replacing it with a much more versatile system, based on a filter : the ExecutorFilter.
The ExecutorFilter class This class is implementing the IoFilter interface, and basically, it contains an Executor to spread the incoming events to a pool of threads.</description>
    </item>
    
    <item>
      <title>Chapter 11 - SSL Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch11-ssl-filter/ch11-ssl-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch11-ssl-filter/ch11-ssl-filter.html</guid>
      <description>Chapter 11 - SSL Filter The SslFilter is the filter in charge of managing the encryption and decryption of data sent through a secured connection. Whenever you need to establish a secured connection, or to transform an existing connection to make it secure, you have to add the SslFilter in your filter chain.
As any session can modify it&amp;rsquo;s message filter chain at will, it allows for protocols like startTLS to be used on an opened connection.</description>
    </item>
    
    <item>
      <title>Chapter 12 - Logging Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch12-logging-filter/ch12-logging-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch12-logging-filter/ch12-logging-filter.html</guid>
      <description>Chapter 12 - Logging Filter  SLF4J  Choosing the Right JARs Overriding Jakarta Commons Logging   log4j example   Background The Apache MINA uses a system that allows for the developer of the MINA-base application to use their own logging system.
SLF4J MINA employs the Simple Logging Facade for Java (SLF4J). You can find information on SLF4J here. This logging utility allows for the implementation of any number of logging systems.</description>
    </item>
    
    <item>
      <title>Chapter 13 - Debugging</title>
      <link>https://mina.apache.org/mina-project/userguide/ch13-debugging/ch13-debugging.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch13-debugging/ch13-debugging.html</guid>
      <description>Chapter 13 - Debugging To be completed&amp;hellip;</description>
    </item>
    
    <item>
      <title>Chapter 14 - State Machine</title>
      <link>https://mina.apache.org/mina-project/userguide/ch14-state-machine/ch14-state-machine.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch14-state-machine/ch14-state-machine.html</guid>
      <description>Chapter 14 - State Machine If you are using MINA to develop an application with complex network interactions you may at some point find yourself reaching for the good old State pattern to try to sort out some of that complexity. However, before you do that you might want to checkout mina-statemachine which tries to address some of the shortcomings of the State pattern.
 A simple example   Lookup a StateContext object Convert the method invocation into an Event object Invoke the StateMachine Execute the Transition   State inheritance Error handling using state inheritance mina-statemachine with IoHandler   Changing state programmatically Calling the state machine recursively   A simple example Let&amp;rsquo;s demonstrate how mina-statemachine works with a simple example.</description>
    </item>
    
    <item>
      <title>Chapter 15 - Proxy</title>
      <link>https://mina.apache.org/mina-project/userguide/ch15-proxy/ch15-proxy.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch15-proxy/ch15-proxy.html</guid>
      <description>Chapter 15 - Proxy To be completed&amp;hellip;</description>
    </item>
    
    <item>
      <title>Chapter 16 - JMX Support</title>
      <link>https://mina.apache.org/mina-project/userguide/ch16-jmx-support/ch16-jmx-support.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch16-jmx-support/ch16-jmx-support.html</guid>
      <description>Chapter 16 - JMX Support Java Management Extensions (JMX) is used for managing and monitoring java applications. This tutorial will provide you with an example as to how you can JMX-enable your MINA based application.
This tutorial is designed to help you get the JMX technology integrated in to your MINA-based application. In this tutorial, we will integrate the MINA-JMX classes into the imagine server example program.
Adding JMX Support To JMX enable MINA application we have to perform following</description>
    </item>
    
    <item>
      <title>Chapter 17 - Spring Integration</title>
      <link>https://mina.apache.org/mina-project/userguide/ch17-spring-integration/ch17-spring-integration.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch17-spring-integration/ch17-spring-integration.html</guid>
      <description>Chapter 17 - Spring Integration This article demonstrates integrating MINA application with Spring. I wrote this article on my blog, and though to put it here, where this information actually belongs to. Can find the original copy at Integrating Apache MINA with Spring.
Application Structure We shall take a standard MINA application which has following construct
 One Handler Two Filter - Logging Filter and a ProtocolCodec Filter NioDatagram Socket  Initialization Code Lets see the code first.</description>
    </item>
    
    <item>
      <title>Chapter 2 - Basics</title>
      <link>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2-basics.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch2-basics/ch2-basics.html</guid>
      <description>Chapter 2 - Basics In Chapter 1, we had a brief glimpse of Apache MINA. In this chapter we shall have a look at Client/Server Architecture and details on working out a MINA based Server and Client.
We will also expose some very simple Servers and Clients, based on TCP and UDP.
 2.1 - Application Architecture  2.1.1 - Server Architecture 2.1.2 - Client Architecture   2.3 - Sample TCP Client 2.</description>
    </item>
    
    <item>
      <title>Chapter 3 - Service</title>
      <link>https://mina.apache.org/mina-project/userguide/ch3-service/ch3-service.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch3-service/ch3-service.html</guid>
      <description>Chapter 3 - IoService A MINA IoService - as seen in the application architecture chapter, is the base class supporting all the IO services, either from the server side or the client side.
It will handle all the interaction with your application, and with the remote peer, send and receive messages, manage sessions, connections, etc.
It&amp;rsquo;s an interface, which is implemented as an IoAcceptor for the server side, and IoConnector for the client side.</description>
    </item>
    
    <item>
      <title>Chapter 4 - Session</title>
      <link>https://mina.apache.org/mina-project/userguide/ch4-session/ch4-session.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch4-session/ch4-session.html</guid>
      <description>Chapter 4 - Session  4.1 - Session Configuration 4.2 - Session Statistics  Introduction The Session is at the heart of MINA : every time a client connects to the server, a new session is created on the server, and will be kept in memory until the client is disconnected. If you are using MINA on the client side, every time you connect to a server, a session will be created on the client too.</description>
    </item>
    
    <item>
      <title>Chapter 5 - Filters</title>
      <link>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5-filters.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch5-filters/ch5-filters.html</guid>
      <description>Chapter 5 - Filters  5.1 - Blacklist Filter 5.2 - Buffered Write Filter 5.3 - Compression Filter 5.4 - Connection Throttle Filter 5.5 - Error Generating Filter 5.6 - Executor Filter 5.7 - FileRegion Write Filter 5.8 - KeepAlive Filter 5.9 - Logging Filter 5.10 - MDC Injection Filter 5.11 - NOOP Filter 5.12 - Profiler Filter 5.13 - Protocol Codec Filter 5.14 - Proxy Filter 5.15 - Reference Counting Filter 5.</description>
    </item>
    
    <item>
      <title>Chapter 6 - Transports</title>
      <link>https://mina.apache.org/mina-project/userguide/ch6-transports/ch6-transports.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch6-transports/ch6-transports.html</guid>
      <description>Chapter 6 - Transports  6.1 - APR Transport 6.2 - Serial Transport  </description>
    </item>
    
    <item>
      <title>Chapter 7 - Handler</title>
      <link>https://mina.apache.org/mina-project/userguide/ch7-handler/ch7-handler.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch7-handler/ch7-handler.html</guid>
      <description>Chapter 7 - Handler Handles all I/O events fired by MINA. The interface is hub of all activities done at the end of the Filter Chain.
IoHandler has following functions
 sessionCreated sessionOpened sessionClosed sessionIdle exceptionCaught messageReceived messageSent  sessionCreated Event Session Created event is fired when a new connection is created. For TCP its the result of connection accept, and for UDP this is generated when a UDP packet is received.</description>
    </item>
    
    <item>
      <title>Chapter 8 - IoBuffer</title>
      <link>https://mina.apache.org/mina-project/userguide/ch8-iobuffer/ch8-iobuffer.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch8-iobuffer/ch8-iobuffer.html</guid>
      <description>Chapter 8 - IoBuffer A byte buffer used by MINA applications.
This is a replacement for ByteBuffer. MINA does not use NIO ByteBuffer directly for two reasons:
 It doesn&amp;rsquo;t provide useful getters and putters such as fill, get/putString, and get/putAsciiInt() . It is difficult to write variable-length data due to its fixed capacity  This will change in MINA 3. The main reason why MINA has its own wrapper on top of nio ByteBuffer is to have extensible buffers.</description>
    </item>
    
    <item>
      <title>Chapter 9 - Codec Filter</title>
      <link>https://mina.apache.org/mina-project/userguide/ch9-codec-filter/ch9-codec-filter.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/ch9-codec-filter/ch9-codec-filter.html</guid>
      <description>Chapter 9 - Codec Filter This tutorial tries to explain why and how to use a ProtocolCodecFilter.
Why use a ProtocolCodecFilter?  TCP guarantees delivery of all packets in the correct order. But there is no guarantee that one write operation on the sender-side will result in one read event on the receiving side. see http://en.wikipedia.org/wiki/IPv4#Fragmentation_and_reassembly and http://en.wikipedia.org/wiki/Nagle%27s_algorithm In MINA terminology: without a ProtocolCodecFilter one call of IoSession.write(Object message) by the sender can result in multiple messageReceived(IoSession session, Object message) events on the receiver; and multiple calls of IoSession.</description>
    </item>
    
    <item>
      <title>Developer Guide</title>
      <link>https://mina.apache.org/mina-project/developer-guide.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/developer-guide.html</guid>
      <description>Building MINA Please read the Developer Infrastructure Information if you haven&#39;t yet before you proceed.   Preparing the release for the vote  Step 0: Building MINA Step 1: Tagging and Deploying step 2 : Processing with a dry run Step 3 : Processing with the real release Step 4 : perform the release Step 5 : closing the staging release on nexus Step 6 : Build the Site Step 7 : Sign the packages Step 8 : Publish Source and Binary Distribution Packages Step 9 : Test the New Version with FtpServer, Sshd and Vysper   Step 10 : Voting a release  Step 11 : Close the vote Step 12: Deploy Web Reports (JavaDoc and JXR) Step 13: Wait 24 hours Step 14: Update the Links in Web Site Step 15: Wait another 24 hours Step 16: Announce the New Release     Checking out the code You need Git to check out the source code from our source code repository, and [Maven(https://maven.</description>
    </item>
    
    <item>
      <title>Documentation</title>
      <link>https://mina.apache.org/mina-project/documentation.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/documentation.html</guid>
      <description>Documentation The MINA 2.0 User Guide can be found here : [User Guide](userguide/user-guide-toc.html)   Presentation Materials Versions &amp; References Tutorials  For Developers   Examples Older Presentation Materials   Presentation Materials These presentation materials will help you understand the overall architecture and core constructs of MINA
 MINA in real life (ApacheCon EU 2009) by Emmanuel L&amp;eacute;charny Rapid Network Application Development with Apache MINA (JavaOne 2008) by Trustin Lee Apache MINA - The High Performance Protocol Construction Toolkit (ApacheCon US 2007) by Peter Royal Introduction to MINA (ApacheCon Asia 2006) by Trustin Lee  Versions &amp;amp; References There are currently three branches in MINA:</description>
    </item>
    
    <item>
      <title>FAQ</title>
      <link>https://mina.apache.org/mina-project/faq.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/faq.html</guid>
      <description>MINA FAQ  General What does MINA mean?  What transport does MINA support? How does MINA perform? Which version of MINA should I use? What is required to build/run MINA? How can I get help? How / What can I contribute?   Can MINA&amp;hellip;?  Can I use MINA to create client (or server) applications? Can MINA handle text protocols such as HTTP? Can MINA handle complex binary protocols such as LDAP?</description>
    </item>
    
    <item>
      <title>Features</title>
      <link>https://mina.apache.org/mina-project/features.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/features.html</guid>
      <description>Features MINA is a simple yet full-featured network application framework which provides:
 Unified API for various transport types:  TCP/IP &amp;amp; UDP/IP via Java NIO Serial communication (RS232) via RXTX In-VM pipe communication You can implement your own!   Filter interface as an extension point; similar to Servlet filters Low-level and high-level API:  Low-level: uses ByteBuffers High-level: uses user-defined message objects and codecs   Highly customizable thread model:  Single thread One thread pool More than one thread pools (i.</description>
    </item>
    
    <item>
      <title>Issue Tracking</title>
      <link>https://mina.apache.org/mina-project/issue-tracking.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/issue-tracking.html</guid>
      <description>Our project uses JIRA, a Java EE based issue tracking and project management application.
General guidance First, this is the best place to submit bugs (or what you think is a bug). The mailing list is a short term memory place, don&amp;rsquo;t expect your problem to be answered if it&amp;rsquo;s not in the next couple of days you posted on it.
What are the important information you need to put when filing a JIRA ?</description>
    </item>
    
    <item>
      <title>Message flow</title>
      <link>https://mina.apache.org/mina-project/technical-documentation/message-flow.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/technical-documentation/message-flow.html</guid>
      <description>Message flow When a selector receives some OP_READ event, the associated IoProcessor is awaken and starts to process this event. It all starts with reading the channel, then pushing the read data through the filter chain down to the IoHandler (aka, the application). If the application decides to write back a response, it goes through the chain again, andultimately the data to be pushed into the channel is pushed into a queue (_writeRequestQueue), then the stack is unfolled, down to the IoProcessor, which pops the data from the queue and writes it into the channel.</description>
    </item>
    
    <item>
      <title>MINA 2.0.x Downloads</title>
      <link>https://mina.apache.org/mina-project/downloads_2_0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/downloads_2_0.html</guid>
      <description>Latest MINA Releases Apache MINA 2.0.23 stable (Java 8+) Binaries  .tar.gz archive mina-2.0.23 (signatures : SHA256 SHA512 ASC) .tar.bz2 archive mina-2.0.23 (signatures : SHA256 SHA512 ASC) .zip archive mina-2.0.23 (signatures : SHA256 SHA512 ASC)  Sources  .src.tar.gz archive mina-2.0.23 (signatures : SHA256 SHA512 ASC) .src.tar.bz2 archive mina-2.0.23 (signatures : SHA256 SHA512 ASC) .src.zip archive mina-2.0.23 (signatures : SHA256 SHA512 ASC)  For people wanting to use the serial package, we don&#39;t include the rxtx.</description>
    </item>
    
    <item>
      <title>MINA 2.1.x Downloads</title>
      <link>https://mina.apache.org/mina-project/downloads_2_1.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/downloads_2_1.html</guid>
      <description>Latest MINA Releases Apache MINA 2.1.6 stable (Java 8+) Binaries  .tar.gz archive mina-2.1.6 (signatures : SHA256 SHA512 ASC) .tar.bz2 archive mina-2.1.6 (signatures : SHA256 SHA512 ASC) .zip archive mina-2.1.6 (signatures : SHA256 SHA512 ASC)  Sources  .src.tar.gz archive mina-2.1.6 (signatures : SHA256 SHA512 ASC) .src.tar.bz2 archive mina-2.1.6 (signatures : SHA256 SHA512 ASC) .src.zip archive mina-2.1.6 (signatures : SHA256 SHA512 ASC)  For people wanting to use the serial package, we don&#39;t include the rxtx.</description>
    </item>
    
    <item>
      <title>MINA 2.1.x vs MINA 2.0.x</title>
      <link>https://mina.apache.org/mina-project/2.1-vs-2.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/2.1-vs-2.0.html</guid>
      <description>2.1.x vs 2.0.x differences The way an application is informed that a session has been secured (ie, the SSL/TLS handshake has been successfully completed) 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 (SslFilter.USE_NOTIFICATION), which is a bit heavy.
It was decided to change that and make it easier for the application to get this information.</description>
    </item>
    
    <item>
      <title>MINA 2.2.x Downloads</title>
      <link>https://mina.apache.org/mina-project/downloads_2_2.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/downloads_2_2.html</guid>
      <description>Latest MINA Releases Apache MINA 2.2.1 stable (Java 8+) Binaries  .tar.gz archive mina-2.2.1 (signatures : SHA256 SHA512 ASC) .tar.bz2 archive mina-2.2.1 (signatures : SHA256 SHA512 ASC) .zip archive mina-2.2.1 (signatures : SHA256 SHA512 ASC)  Sources  .src.tar.gz archive mina-2.2.1 (signatures : SHA256 SHA512 ASC) .src.tar.bz2 archive mina-2.2.1 (signatures : SHA256 SHA512 ASC) .src.zip archive mina-2.2.1 (signatures : SHA256 SHA512 ASC)  For people wanting to use the serial package, we don&#39;t include the rxtx.</description>
    </item>
    
    <item>
      <title>MINA 2.2.x vs MINA 2.1.x</title>
      <link>https://mina.apache.org/mina-project/2.2-vs-2.1.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/2.2-vs-2.1.html</guid>
      <description>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 a 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 sent by an application (an LDAP client, for instance), which tells the server it should establish the SSL/TLS layer.</description>
    </item>
    
    <item>
      <title>MINA Codec Repository</title>
      <link>https://mina.apache.org/mina-project/codec-repo.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/codec-repo.html</guid>
      <description>Overview This page captures known MINA Codecs available. These codecs may not be part of Apache MINA project. The Codecs are for reference purpose only.
The Codecs listed here may not be part of Apache MINA project. The information is for MINA Users for reference implementation available over the web  Protocol Codecs The table below summarizes some of the known codecs
   Protocol Project Description     Prefixed String Apache MINA Encodes/Decodes a a String with fixed length prefix   Object Serializer Apache MINA Serializes and deserializes Java objects   Text Line Apache MINA Encoding/Decoding between a text line data and a Java string object   Ftp Apache FtpServer FTP codecs   LDAP Apache Directory LDAP protocol Codecs   DNS Apache Directory DNS protocol Codecs   Kerberos Apache Directory Kerberos protocol Codecs   NTP Apache Directory NTP protocol Codecs   DHCP Apache Directory DHCP protocol Codecs   MRTMP Red5 Codecs for Multiplexing RTMP   RTMP Red5 Codecs for RTMP   RTSP Red5 Codecs for RTSP   SMTP MailsterSMTP SMTP Codecs   AMQP Apache Qpid AMQP Codecs   XMPP Jive Software Openfire XMPP Codecs   XMPP Vysper XMPP/XML Codecs.</description>
    </item>
    
    <item>
      <title>MINA Home</title>
      <link>https://mina.apache.org/mina-project/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/</guid>
      <description>Welcome to Apache MINA Overview Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract &amp;middot; event-driven · asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.
Apache MINA is often called:
 NIO framework &amp;middot; library, client &amp;middot; server framework &amp;middot; library, or a networking &amp;middot; socket library.  However, it&amp;rsquo;s much more than that.</description>
    </item>
    
    <item>
      <title>MINA Older Downloads</title>
      <link>https://mina.apache.org/mina-project/downloads_old.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/downloads_old.html</guid>
      <description>Older MINA Releases For people wanting to use the serial package, we don&#39;t include the rxtx.jar library in the releases, as it&#39;s under a LGPL license. Please download it from http://rxtx.qbang.org/wiki/index.php/Download or add the associated dependency in your maven pom.xml : &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.rxtx&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;rxtx&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;2.1.7&amp;lt;/version&amp;gt; &amp;lt;scope&amp;gt;provided&amp;lt;scope&amp;gt; &amp;lt;/dependency&amp;gt;   MINA 2.2.x     Version Download Links Date     ApacheDS MINA 2.2.0 Download, Javadoc, Test javadoc, Xref, Xref test 19/Jul/2022    MINA 2.</description>
    </item>
    
    <item>
      <title>MINA Presentation Materials</title>
      <link>https://mina.apache.org/mina-project/conferences.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/conferences.html</guid>
      <description>Presentation Materials These presentation materials will help you understand the overall architecture and core constructs of MINA.
 MINA in real life (ApacheCon EU 2009) by Emmanuel L&amp;eacute;charny Rapid Network Application Development with Apache MINA (JavaOne 2008) by Trustin Lee Apache MINA - The High Performance Protocol Construction Toolkit (ApacheCon US 2007) by Peter Royal Introduction to MINA (ApacheCon Asia 2006) by Trustin Lee  Other Presentation Materials  Building TCP/IP Servers with Apache MINA (ApacheCon EU 2007) by Peter Royal Building TCP/IP Servers with Apache MINA (ApacheCon EU 2006) by Peter Royal Introduction to MINA (ApacheCon US 2005) by Trustin Lee Demo movie  </description>
    </item>
    
    <item>
      <title>News</title>
      <link>https://mina.apache.org/mina-project/news.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/news.html</guid>
      <description>News MINA 2.2.1 released posted on july, 24, 2022 The MINA project is pleased to announce the MINA 2.2.1 release.
Changes This new version is just a fix in some OSGi export declaration that was done wrong in the previous release.
MINA 2.2.0 released posted on july, 19, 2022 The MINA project is pleased to announce the MINA 2.2.0 release.
Changes This new version comes with complete rewrite of the SSL/TLS layer.</description>
    </item>
    
    <item>
      <title>Performance Test Reports</title>
      <link>https://mina.apache.org/mina-project/performances.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/performances.html</guid>
      <description>Before You Read the Performance Test Reports&amp;hellip; This page exhibits the performance test results under various conditions (e.g. various protocols and system environments). Please [contact us|Mailing Lists] if you have any specific performance test results to publish for your MINA-based application.
The following performance test results may have critical flaws in test design or contain wrong values. Please regard these reports as just a hint for understanding general performance characteristics of Apache MINA.</description>
    </item>
    
    <item>
      <title>Quick Start Guide</title>
      <link>https://mina.apache.org/mina-project/quick-start-guide.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/quick-start-guide.html</guid>
      <description>Quick Start Guide This tutorial will walk you through the process of building a MINA based program. This tutorial will walk through building a time server. The following prerequisites are required for this tutorial:
 MINA 2.0.7 Core JDK 1.5 or greater [SLF4J|http://www.slf4j.org/] 1.3.0 or greater  Log4J 1.2 users: slf4j-api.jar, slf4j-log4j12.jar, and Log4J 1.2.x Log4J 1.3 users: slf4j-api.jar, slf4j-log4j13.jar, and Log4J 1.3.x java.util.logging users: slf4j-api.jar and slf4j-jdk14.jar IMPORTANT : Please make sure you are using the right slf4j-*.</description>
    </item>
    
    <item>
      <title>Related Projects</title>
      <link>https://mina.apache.org/mina-project/related-projects.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/related-projects.html</guid>
      <description>Related Projects This page lists the projects which use Apache MINA as its networking layer. Please contact us if you are using MINA and you want to add a link to this page. You could also read the users&amp;rsquo; testimonials. To compare MINA to other network application frameworks, please refer to the &amp;lsquo;Other network application frameworks&amp;rsquo; section below.
 Other network application frameworks  Grizzly Netty 3 NIO Framework QuickServer xSocket   Messaging  Apache Camel Apache Qpid (incubating) Avis MailsterSMTP   Instant Messaging  Jive Software Openfire   Media Storage &amp; Streaming  OpenLSD Red5   Miscellaneous  Apache Directory Project Beep4j VFS FTPServer Bridge HDFS over FTP     Other network application frameworks The projects referred in this section &#39;Other network application frameworks&#39; are not based on MINA but are their own network application frameworks.</description>
    </item>
    
    <item>
      <title>Road map</title>
      <link>https://mina.apache.org/mina-project/road-map.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/road-map.html</guid>
      <description>Please click the following links to find out what issues have been resolved and what issues will be resolved.
 Road map for the future releases Change log for the past releases  Genesis of MINA by Trustin Lee
In June 2004, I released a network application framework, &amp;lsquo;Netty2&amp;rsquo;. It was the first network application framework that provides event-based architecture in Java community. It attracted network application programmers because of its simplicity and ease of use.</description>
    </item>
    
    <item>
      <title>Setting SVN Properties in Tortoise SVN</title>
      <link>https://mina.apache.org/mina-project/set-svnprops-tortoisesvn.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/set-svnprops-tortoisesvn.html</guid>
      <description>Setting SVN Properties in Tortoise SVN This article is for configuring SVN properties for TortoiseSVN Client
To maintain header&amp;rsquo;s with revision tags like, we need to set SVN properties.
/** * @version $Rev: 529576 $, $Date: 2007-04-17 14:25:07 +0200 (mar., 17 avr. 2007) $ */ Lets see how to set these properties in Tortoise SVN Client
Open Tortoise SVN Client setting, (Right Click-&amp;gt; Tortoise SVN -&amp;gt; Settings)
Click Edit button (as shown in figure)</description>
    </item>
    
    <item>
      <title>Sources</title>
      <link>https://mina.apache.org/mina-project/sources.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/sources.html</guid>
      <description>Overview Sources for the Apache MINA projects are currently managed through GIT. Instructions on GIT use can be found at http://git-scm.com/book/.
For each project you can find a detailed description how to checkout and build the source on the project documentation. This page is just a short overview.
Normal Git Access Anyone can check code out of Git. You only need to specify a username and password in order to update the Git repository, and only MINA committers have the permissions to do that.</description>
    </item>
    
    <item>
      <title>SSL/TLS internals</title>
      <link>https://mina.apache.org/mina-project/technical-documentation/ssl-tls-internal.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/technical-documentation/ssl-tls-internal.html</guid>
      <description>SSL/TLS internals This is a technical description of how SSL/TLS are handled in MINA. You don&amp;rsquo;t need to read this to have it working, better have a look at the SslFilter user guide page. However, if you want to get a deeper understanding on how it&amp;rsquo;s built, this is the place !
Components The SslFilter is the filter that command everything related to SSL/TLS. It works hands in hands with the SSLHandler class, which handles the logic.</description>
    </item>
    
    <item>
      <title>Testimonials</title>
      <link>https://mina.apache.org/mina-project/testimonials.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/testimonials.html</guid>
      <description>Marko Asplund says:
 I found that Apache MINA really did fulfill its promise and implementing a high-performance, scalable and extensible network server was easy using it. MINA also helps very cleanly separate network communication and application level message processing logic. Supporting multiple different protocols in in the same server is well supported in MINA. As a downside the documentation for v2.0 is a bit lacking, but fortunately there are quite a few code samples that you can check out.</description>
    </item>
    
    <item>
      <title>User Guide</title>
      <link>https://mina.apache.org/mina-project/userguide/user-guide-toc.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/mina-project/userguide/user-guide-toc.html</guid>
      <description>MINA 2.0 User Guide Part I - Basics
 Chapter 1 - Getting Started  1.1 - NIO Overview 1.2 - Why MINA ? 1.3 - Features 1.4 - First Steps 1.5 - Summary   Chapter 2 - Basics  2.1 - Application Architecture  2.1.1 - Server Architecture 2.1.2 - Client Architecture   2.2 - Sample TCP Server 2.3 - Sample TCP Client 2.4 - Sample UDP Server 2.</description>
    </item>
    
  </channel>
</rss>