<?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.
Added to that (when it comes to asynchronous IO) an extra layer of complexity comes into play: time.</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 This is a critical part of any serious network application: securing the communication between the client and the server.
In MINA, we do that with the SslFilter. The idea is to add this Filter in the chain and it will deal with the Handshake negociation, and the following encrypting and uncrypting of the data.
How it works The thing to remember is that the TLS protocol works in two steps:</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.25 stable (Java 8+) Binaries  .tar.gz archive mina-2.0.25 (signatures : SHA256 SHA512 ASC) .tar.bz2 archive mina-2.0.25 (signatures : SHA256 SHA512 ASC) .zip archive mina-2.0.25 (signatures : SHA256 SHA512 ASC)  Sources  .src.tar.gz archive mina-2.0.25 (signatures : SHA256 SHA512 ASC) .src.tar.bz2 archive mina-2.0.25 (signatures : SHA256 SHA512 ASC) .src.zip archive mina-2.0.25 (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.8 stable (Java 8+) Binaries  .tar.gz archive mina-2.1.8 (signatures : SHA256 SHA512 ASC) .tar.bz2 archive mina-2.1.8 (signatures : SHA256 SHA512 ASC) .zip archive mina-2.1.8 (signatures : SHA256 SHA512 ASC)  Sources  .src.tar.gz archive mina-2.1.8 (signatures : SHA256 SHA512 ASC) .src.tar.bz2 archive mina-2.1.8 (signatures : SHA256 SHA512 ASC) .src.zip archive mina-2.1.8 (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.3 stable (Java 8+) Binaries  .tar.gz archive mina-2.2.3 (signatures : SHA256 SHA512 ASC) .tar.bz2 archive mina-2.2.3 (signatures : SHA256 SHA512 ASC) .zip archive mina-2.2.3 (signatures : SHA256 SHA512 ASC)  Sources  .src.tar.gz archive mina-2.2.3 (signatures : SHA256 SHA512 ASC) .src.tar.bz2 archive mina-2.2.3 (signatures : SHA256 SHA512 ASC) .src.zip archive mina-2.2.3 (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 &amp;middot; 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.2 Download, Javadoc, Test javadoc, Xref, Xref test 5/Jun/2023   ApacheDS 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.3, 2.1.8, 2.0.25 released posted on September, 12, 2023 The MINA project is pleased to announce the MINA 2.2.3, 2.1.8 and 2.0.25 release.
Changes Those versions are fixing some Datagram session issue:
 DIRMINA-996 IoSessionRecycler RemoteAddress Collision DIRMINA-1172 Multiple DatagramAcceptors and the creation of a session object  MINA 2.2.2, 2.1.7, 2.0.24 released posted on June, 05, 2023 The MINA project is pleased to announce the MINA 2.2.2, 2.</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>