This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/mina-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new b6e1cfd05 Updated site from master 
(3188356ed8cc00d2cd29a1d66e98034011bbf54d)
b6e1cfd05 is described below

commit b6e1cfd05979c1476d4d1237769e3741df200eb4
Author: jenkins <bui...@apache.org>
AuthorDate: Mon Jul 3 13:53:59 2023 +0000

    Updated site from master (3188356ed8cc00d2cd29a1d66e98034011bbf54d)
---
 .../documentation/ch6-internals/ch6-internals.html | 288 ++++++++++++++++++++-
 content/ftpserver-project/index.xml                |   4 +-
 content/index.xml                                  |   6 +-
 content/mina-project/index.html                    |   2 +-
 content/mina-project/index.xml                     |   2 +-
 content/sitemap.xml                                |   8 +-
 6 files changed, 296 insertions(+), 14 deletions(-)

diff --git 
a/content/ftpserver-project/documentation/ch6-internals/ch6-internals.html 
b/content/ftpserver-project/documentation/ch6-internals/ch6-internals.html
index 1ff43442b..e93f3235e 100644
--- a/content/ftpserver-project/documentation/ch6-internals/ch6-internals.html
+++ b/content/ftpserver-project/documentation/ch6-internals/ch6-internals.html
@@ -122,7 +122,7 @@
     <span style="color:#666">.</span><span style="color:#666">.</span><span 
style="color:#666">.</span>
 </code></pre></div><p>Let&rsquo;s see what happens when we create the factory 
and when the server is created</p>
 <h2 id="ftpserverfactory-creation">FtpServerFactory creation</h2>
-<p>The <strong>FtpServerFactory</strong> is associated with a 
<strong>FtpServerContext</strong> instance, which define a set of elements:</p>
+<p>The <strong>FtpServerFactory</strong> is associated with a 
<strong>FtpServerContext</strong> instance, which defines a set of elements:</p>
 <ul>
 <li>a <strong>CommandFactory</strong> instance</li>
 <li>a <strong>ConnectionConfig</strong> instance</li>
@@ -130,7 +130,7 @@
 <li>a <strong>FtpletContainer</strong> instance</li>
 <li>a <strong>FtpStatistics</strong> instance</li>
 <li>a set of <strong>Listener</strong> instances</li>
-<li>a <strong>MessageResource</strong> instance</li>
+<li>a <strong>MessageResource</strong> instance. It manages the messages  
(code and sub-ids) associated with the various supported languages.</li>
 <li>a <strong>UserManager</strong> instance</li>
 </ul>
 <p>The class hierarchy is the following:</p>
@@ -147,7 +147,289 @@
                      '--| DefaultFtpServerContext |
                         '-------------------------'
 
-</code></pre>
+</code></pre><h3 
id="messageresourcefactory-and-messageresource">MessageResourceFactory and 
MessageResource</h3>
+<p>The <strong>MessageResourceFactory</strong> is used to create the 
<strong>MessageResource</strong> instance which will be an instance of the 
<strong>DefaultMessageResource</strong> class).</p>
+<p>The <strong>MessageResource</strong> instance contains the messages for all 
the supported languages. Those messages are those sent to the client when a 
command is executed. For instance, the response for a <strong>STOR</strong> 
command may be:</p>
+<pre><code>Can't open data connection.
+</code></pre><p>This is defined in the <em>FtpStatus.properties</em> file, 
among other response messages:</p>
+<pre><code>...
+425.STOR=Can't open data connection.
+...
+</code></pre><p>Those messages are read from various places (the &lt;lang&gt; 
tag is the name of the language to use, like <strong>en</strong>, 
<strong>fr</strong>, etc):</p>
+<ul>
+<li>Default messages
+<ul>
+<li><em>org/apache/ftpserver/message/FtpStatus.properties</em></li>
+<li><em>org/apache/ftpserver/message/FtpStatus</em>&lt;lang&gt;.properties_</li>
+</ul>
+</li>
+<li>Custom messages
+<ul>
+<li><em>org/apache/ftpserver/message/FtpStatus.gen</em></li>
+<li><em>org/apache/ftpserver/message/FtpStatus</em>&lt;lang&gt;.gen_</li>
+</ul>
+</li>
+</ul>
+<h2 id="commandfactory">Commandfactory</h2>
+<p>This factory creates a <strong>Map</strong> which contains the 
<em>Command</em> instances associated with the command name. The current 
version support those commands:</p>
+<table>
+<thead>
+<tr>
+<th>Command</th>
+<th>RFC reference</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>ABOR</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>ACCT</td>
+<td>rfc959, 4.1.1</td>
+</tr>
+<tr>
+<td>APPE</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>AUTH</td>
+<td>rfc2228, 3</td>
+</tr>
+<tr>
+<td>CDUP</td>
+<td>rfc959, 4.1.1</td>
+</tr>
+<tr>
+<td>CWD</td>
+<td>rfc959, 4.1.1</td>
+</tr>
+<tr>
+<td>DELE</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>EPRT</td>
+<td>rfc2428, 2</td>
+</tr>
+<tr>
+<td>EPSV</td>
+<td>rfc2428, 3</td>
+</tr>
+<tr>
+<td>FEAT</td>
+<td>rfc2389, 3</td>
+</tr>
+<tr>
+<td>HELP</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>LANG</td>
+<td>rfc2640, 4.1</td>
+</tr>
+<tr>
+<td>LIST</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>MD5</td>
+<td>draft-twine-ftpmd5-00.txt , 3.1</td>
+</tr>
+<tr>
+<td>MMD5</td>
+<td>draft-twine-ftpmd5-00.txt , 3.2</td>
+</tr>
+<tr>
+<td>MDTM</td>
+<td>rfc3659, 3</td>
+</tr>
+<tr>
+<td>MFMT</td>
+<td>draft-somers-ftp-mfxx, 3</td>
+</tr>
+<tr>
+<td>MKD</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>MLSD</td>
+<td>rfc3659, 7</td>
+</tr>
+<tr>
+<td>MLST</td>
+<td>rfc3659, 7</td>
+</tr>
+<tr>
+<td>MODE</td>
+<td>rfc959, 4.1.2</td>
+</tr>
+<tr>
+<td>NLST</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>NOOP</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>OPTS</td>
+<td>rfc2389, 4</td>
+</tr>
+<tr>
+<td>PASS</td>
+<td>rfc959, 4.1.1</td>
+</tr>
+<tr>
+<td>PASV</td>
+<td>rfc959, 4.1.2</td>
+</tr>
+<tr>
+<td>PBSZ</td>
+<td>rfc2228, 3</td>
+</tr>
+<tr>
+<td>PORT</td>
+<td>rfc959, 4.1.2</td>
+</tr>
+<tr>
+<td>PROT</td>
+<td>rfc2228, 3</td>
+</tr>
+<tr>
+<td>PWD</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>QUIT</td>
+<td>rfc959, 4.1.1</td>
+</tr>
+<tr>
+<td>REIN</td>
+<td>rfc959, 4.1.1</td>
+</tr>
+<tr>
+<td>REST</td>
+<td>rfc959, 4.1.3, rfc3659, 5</td>
+</tr>
+<tr>
+<td>RETR</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>RMD</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>RNFR</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>RNTO</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>SITE</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>SITE_DESCUSER</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>SITE_HELP</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>SITE_STAT</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>SITE_WHO</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>SITE_ZONE</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>SIZE</td>
+<td>rfc3659, 4</td>
+</tr>
+<tr>
+<td>STAT</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>STOR</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>STOU</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>STRU</td>
+<td>rfc959, 4.1.2</td>
+</tr>
+<tr>
+<td>SYST</td>
+<td>rfc959, 4.1.3</td>
+</tr>
+<tr>
+<td>TYPE</td>
+<td>rfc959, 4.1.2</td>
+</tr>
+<tr>
+<td>USER</td>
+<td>rfc959, 4.1.1</td>
+</tr>
+</tbody>
+</table>
+<p>The class hierarchy is the following:</p>
+<pre><code class="language-goat" data-lang="goat">
+ .--------------.
+| CommandFactory |
+ '--------------'
+        ^
+        |   .----------------------.
+        '--| DefaultCommandFactory  |
+            '----------------------'
+
+</code></pre><p>And instance of a <em>CommandFactory</em> can be obtained by 
calling the <em>CommandFactoryFactory.createCommandFactory</em>:</p>
+<div class="highlight"><pre 
style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code 
class="language-java" data-lang="java">        CommandFactoryFactory 
commandFactoryFactory <span style="color:#666">=</span> <span 
style="color:#a2f;font-weight:bold">new</span> CommandFactoryFactory<span 
style="color:#666">(</span><span style="color:#666">)</span><span 
style="color:#666">;</span>
+
+               CommandFactory commandFactory <span style="color:#666">=</span> 
commandFactoryFactory<span style="color:#666">.</span><span 
style="color:#b44">createCommandFactory</span><span 
style="color:#666">(</span><span style="color:#666">)</span><span 
style="color:#666">;</span>    
+</code></pre></div><p>The <em>CommandFactory</em> instance will contain all 
the previously listed commands.</p>
+<p>You can add some commands in the default list:</p>
+<div class="highlight"><pre 
style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code 
class="language-java" data-lang="java">        CommandFactoryFactory 
commandFactoryFactory <span style="color:#666">=</span> <span 
style="color:#a2f;font-weight:bold">new</span> CommandFactoryFactory<span 
style="color:#666">(</span><span style="color:#666">)</span><span 
style="color:#666">;</span>
+
+        commandFactoryFactory<span style="color:#666">.</span><span 
style="color:#b44">addCommand</span><span style="color:#666">(</span><span 
style="color:#b44">&#34;PASV&#34;</span><span style="color:#666">,</span> <span 
style="color:#a2f;font-weight:bold">new</span> PASVTest<span 
style="color:#666">(</span><span style="color:#666">)</span><span 
style="color:#666">)</span><span style="color:#666">;</span>
+
+               CommandFactory commandFactory <span style="color:#666">=</span> 
commandFactoryFactory<span style="color:#666">.</span><span 
style="color:#b44">createCommandFactory</span><span 
style="color:#666">(</span><span style="color:#666">)</span><span 
style="color:#666">;</span>    
+</code></pre></div><p>The <em>CommandFactory</em> instance will contain all 
the previously listed commands plus the added <strong>PASV</strong> command.</p>
+<p>You can also create non standard commands by setting the 
<em>CommandFactoryFactory.useDefaultCommands</em> to false. here is an 
example:</p>
+<div class="highlight"><pre 
style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code 
class="language-java" data-lang="java">        CommandFactoryFactory 
commandFactoryFactory <span style="color:#666">=</span> <span 
style="color:#a2f;font-weight:bold">new</span> CommandFactoryFactory<span 
style="color:#666">(</span><span style="color:#666">)</span><span 
style="color:#666">;</span>
+
+        <span style="color:#080;font-style:italic">// Add a non standard 
command
+</span><span style="color:#080;font-style:italic"></span>        
commandFactoryFactory<span style="color:#666">.</span><span 
style="color:#b44">addCommand</span><span style="color:#666">(</span><span 
style="color:#b44">&#34;foo&#34;</span><span style="color:#666">,</span> <span 
style="color:#a2f;font-weight:bold">new</span> NOOP<span 
style="color:#666">(</span><span style="color:#666">)</span><span 
style="color:#666">)</span><span style="color:#666">;</span>
+
+        <span style="color:#080;font-style:italic">// tell the factory it will 
contain non-standard commands
+</span><span style="color:#080;font-style:italic"></span>        
commandFactoryFactory<span style="color:#666">.</span><span 
style="color:#b44">setUseDefaultCommands</span><span 
style="color:#666">(</span><span 
style="color:#a2f;font-weight:bold">false</span><span 
style="color:#666">)</span><span style="color:#666">;</span>
+
+        <span style="color:#080;font-style:italic">// Get the commandfactory 
having only the created non standard command
+</span><span style="color:#080;font-style:italic"></span>              
CommandFactory commandFactory <span style="color:#666">=</span> 
commandFactoryFactory<span style="color:#666">.</span><span 
style="color:#b44">createCommandFactory</span><span 
style="color:#666">(</span><span style="color:#666">)</span><span 
style="color:#666">;</span>
+
+
+</code></pre></div><p>Here, the <em>Commandfactory</em> instance will onkly 
contain non-standard commands, and none of the default commands.</p>
+<h2 id="usermanagerfactory">UserManagerFactory</h2>
+<p>This factory creates an <em>UserManager</em> instance, which may be file 
based or Database based.</p>
+<p>There are two implementations of this factory:</p>
+<ul>
+<li><em>DbUserManagerFactory</em> which takes the information relative to the 
user from a <strong>SQL</strong> Database</li>
+<li><em>PropertiesUserManagerFactory</em> which takes the information relative 
to the user from properties file</li>
+</ul>
+
 
             
     <div class="nav">
diff --git a/content/ftpserver-project/index.xml 
b/content/ftpserver-project/index.xml
index e5a8243d7..20c3f4b85 100644
--- a/content/ftpserver-project/index.xml
+++ b/content/ftpserver-project/index.xml
@@ -48,8 +48,8 @@ Getting the Binary Distributions    Description Download Link 
SHA256 hashes SHA5
       
<guid>https://mina.apache.org/ftpserver-project/documentation/ch6-internals/ch6-internals.html</guid>
       <description>Chapter 6 - Internals Creating a FtpServer instance is done 
using a FtpServerFactory. The is done with such code:
 FtpServerFactory serverFactory = new FtpServerFactory(); FtpServer server = 
serverFactory.createServer(); server.start(); ... Let&amp;rsquo;s see what 
happens when we create the factory and when the server is created
-FtpServerFactory creation The FtpServerFactory is associated with a 
FtpServerContext instance, which define a set of elements:
- a CommandFactory instance a ConnectionConfig instance a FileSystemFactory 
instance a FtpletContainer instance a FtpStatistics instance a set of Listener 
instances a MessageResource instance a UserManager instance  The class 
hierarchy is the following:</description>
+FtpServerFactory creation The FtpServerFactory is associated with a 
FtpServerContext instance, which defines a set of elements:
+ a CommandFactory instance a ConnectionConfig instance a FileSystemFactory 
instance a FtpletContainer instance a FtpStatistics instance a set of Listener 
instances a MessageResource instance.</description>
     </item>
     
     <item>
diff --git a/content/index.xml b/content/index.xml
index 9bf5a12d0..ae23c9f8c 100644
--- a/content/index.xml
+++ b/content/index.xml
@@ -1102,8 +1102,8 @@ It&amp;rsquo;s an interface, which is implemented as an 
IoAcceptor for the serve
       
<guid>https://mina.apache.org/ftpserver-project/documentation/ch6-internals/ch6-internals.html</guid>
       <description>Chapter 6 - Internals Creating a FtpServer instance is done 
using a FtpServerFactory. The is done with such code:
 FtpServerFactory serverFactory = new FtpServerFactory(); FtpServer server = 
serverFactory.createServer(); server.start(); ... Let&amp;rsquo;s see what 
happens when we create the factory and when the server is created
-FtpServerFactory creation The FtpServerFactory is associated with a 
FtpServerContext instance, which define a set of elements:
- a CommandFactory instance a ConnectionConfig instance a FileSystemFactory 
instance a FtpletContainer instance a FtpStatistics instance a set of Listener 
instances a MessageResource instance a UserManager instance  The class 
hierarchy is the following:</description>
+FtpServerFactory creation The FtpServerFactory is associated with a 
FtpServerContext instance, which defines a set of elements:
+ a CommandFactory instance a ConnectionConfig instance a FileSystemFactory 
instance a FtpletContainer instance a FtpStatistics instance a set of Listener 
instances a MessageResource instance.</description>
     </item>
     
     <item>
@@ -1729,7 +1729,7 @@ The Codecs listed here may not be part of Apache MINA 
project. The information i
       <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.
+      <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>
diff --git a/content/mina-project/index.html b/content/mina-project/index.html
index 254d525bc..3b7a916f1 100644
--- a/content/mina-project/index.html
+++ b/content/mina-project/index.html
@@ -120,7 +120,7 @@
             
        <h1 id="welcome-to-apache-mina">Welcome to Apache MINA</h1>
 <h2 id="overview">Overview</h2>
-<p>Apache  <abbr title="Multipurpose Infrastructure for Network 
Applications">MINA</abbr> is a network application framework which helps users 
develop high performance and high scalability network applications easily.  It 
provides an abstract &middot; event-driven · asynchronous API over various 
transports such as TCP/IP and UDP/IP via Java NIO.</p>
+<p>Apache  <abbr title="Multipurpose Infrastructure for Network 
Applications">MINA</abbr> is a network application framework which helps users 
develop high performance and high scalability network applications easily.  It 
provides an abstract &middot; event-driven &middot; asynchronous API over 
various transports such as TCP/IP and UDP/IP via Java NIO.</p>
 <p>Apache MINA is often called:</p>
 <ul>
 <li>NIO framework &middot; library,</li>
diff --git a/content/mina-project/index.xml b/content/mina-project/index.xml
index 4907d72b5..86f12c7b4 100644
--- a/content/mina-project/index.xml
+++ b/content/mina-project/index.xml
@@ -729,7 +729,7 @@ The Codecs listed here may not be part of Apache MINA 
project. The information i
       <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.
+      <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>
diff --git a/content/sitemap.xml b/content/sitemap.xml
index f66a23be5..cb97ae3ce 100644
--- a/content/sitemap.xml
+++ b/content/sitemap.xml
@@ -549,7 +549,7 @@
   
   <url>
     
<loc>https://mina.apache.org/ftpserver-project/documentation/ch6-internals/ch6-internals.html</loc>
-    <lastmod>2023-06-29T15:38:13+02:00</lastmod>
+    <lastmod>2023-07-03T15:48:21+02:00</lastmod>
   </url>
   
   <url>
@@ -799,7 +799,7 @@
   
   <url>
     <loc>https://mina.apache.org/ftpserver-project.html</loc>
-    <lastmod>2023-06-29T15:38:13+02:00</lastmod>
+    <lastmod>2023-07-03T15:48:21+02:00</lastmod>
   </url>
   
   <url>
@@ -864,7 +864,7 @@
   
   <url>
     <loc>https://mina.apache.org/mina-project/</loc>
-    <lastmod>2020-02-27T13:50:48+01:00</lastmod>
+    <lastmod>2023-07-03T15:48:21+02:00</lastmod>
   </url>
   
   <url>
@@ -879,7 +879,7 @@
   
   <url>
     <loc>https://mina.apache.org/mina-project.html</loc>
-    <lastmod>2023-06-27T18:14:01+02:00</lastmod>
+    <lastmod>2023-07-03T15:48:21+02:00</lastmod>
   </url>
   
   <url>

Reply via email to