Author: buildbot
Date: Wed Oct 31 16:35:31 2012
New Revision: 836752

Log:
Staging update by buildbot for mina

Modified:
    websites/staging/mina/trunk/content/   (props changed)
    websites/staging/mina/trunk/content/ftpserver/ftplet.html
    websites/staging/mina/trunk/content/ftpserver/mailing_list.html

Propchange: websites/staging/mina/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed Oct 31 16:35:31 2012
@@ -1 +1 @@
-1404219
+1404234

Modified: websites/staging/mina/trunk/content/ftpserver/ftplet.html
==============================================================================
--- websites/staging/mina/trunk/content/ftpserver/ftplet.html (original)
+++ websites/staging/mina/trunk/content/ftpserver/ftplet.html Wed Oct 31 
16:35:31 2012
@@ -130,468 +130,473 @@
 <p>Provides the client request information to a ftplet. Contains the FTP 
command and argument.</p>
 <h2 id="ftplet_1">Ftplet</h2>
 <p>There will be only one instance of Ftplet. During startup the Ftplets will 
be initialized. The initialization sequence is same as the Ftplet sequence in 
the configuration. Then all notification methods will be called and when the 
FtpServer goes down, the Ftplet will be destroyed. The following method 
describes all the notification methods.</p>
-<p><DIV class="table-wrap">
-<TABLE class="confluenceTable"><TBODY>
-<TR>
-<TH class="confluenceTh"> Method </TH>
-<TH class="confluenceTh"> Description </TH>
-</TR>
-<TR>
-<TD class="confluenceTd"> onConnect </TD>
-<TD class="confluenceTd"> Client connect notification method. This is the 
first method FtpServer will call. If it returns SKIP, IP restriction check, 
connection limit check will not be performed and the server will not send the 
welcome message (220). </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDisconnect </TD>
-<TD class="confluenceTd"> Client disconnect notification method. This is the 
last method FtpServer will call. Whatever it returns, the client connection 
will be closed. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> beforeCommand </TD>
-<TD class="confluenceTd"> Called before the server invoke the command.  </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> afterCommand </TD>
-<TD class="confluenceTd"> Called after the server as invoked the command. </TD>
-</TR>
-</TBODY></TABLE>
-</DIV></p>
+<table>
+<thead>
+<tr>
+<th>Method</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>onConnect</td>
+<td>Client connect notification method. This is the first method FtpServer 
will call. If it returns SKIP, IP restriction check, connection limit check 
will not be performed and the server will not send the welcome message 
(220).</td>
+</tr>
+<tr>
+<td>onDisconnect</td>
+<td>Client disconnect notification method. This is the last method FtpServer 
will call. Whatever it returns, the client connection will be closed.</td>
+</tr>
+<tr>
+<td>beforeCommand</td>
+<td>Called before the server invoke the command.</td>
+</tr>
+<tr>
+<td>afterCommand</td>
+<td>Called after the server as invoked the command.</td>
+</tr>
+</tbody>
+</table>
 <h2 id="defaultftplet">DefaultFtplet</h2>
 <p>DefaultFtplet provides some convenience methods for common FTP commands. 
Users can easily extend the DefaultFtplet class and choose what methods to 
override and handle.</p>
-<p><DIV class="table-wrap">
-<TABLE class="confluenceTable"><TBODY>
-<TR>
-<TH class="confluenceTh"> Method </TH>
-<TH class="confluenceTh"> Description </TH>
-</TR>
-<TR>
-<TD class="confluenceTd"> onLogin </TD>
-<TD class="confluenceTd"> Client login notification method. This will be 
called after the user authentication. In this case the FtpServer has already 
sent the login OK (230) reply. This is called during FTP PASS request. The FTP 
session will be disconnected in the return value is FtpletResult.DISCONNECT. 
</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDeleteStart </TD>
-<TD class="confluenceTd"> Before file deletion this method will be called. 
Before this FtpServer will not check anything like file existence or 
permission. The requested file name can be get from request argument. We can 
get the file object from the request file system view. This is called in DELE 
FTP command. The method should send some responses (like 250, 450, 550) in case 
of SKIP return value. In this case, the server will skip the command processing 
and the ftplet has to send appropriate response values. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDeleteEnd </TD>
-<TD class="confluenceTd"> This method will be called after the file deletion, 
successful or not. In this case the FtpServer has already sent the reply 
message. This is called in DELE FTP command. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadStart </TD>
-<TD class="confluenceTd"> This method will be called before the file upload. 
The file name can be get from the request argument. We can get the data input 
stream from request. This will be called before the permission check. This is 
called during STOR command. If the method returns SKIP, it has to send 
responses before and after processing. For example, before opening the data 
input stream, the method has to notify the client with a response code 150. 
Similarly, after the data transfer, the method has to notify the client with a 
response code 226. In case of any error, the method should send different 
response codes like 450, 425, 426, 551. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadEnd </TD>
-<TD class="confluenceTd"> This notification method will be called to indicate 
that the file transfer is successful and the server has send the replies. In 
case of any error this method will not be called. This is called in STOR 
command. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadStart </TD>
-<TD class="confluenceTd"> This is file download request notification method 
called during RETR command. This will be called before the file download. We 
can get the file name argument from request. Similarly, the data output stream 
can be get from the request. This will be called before the file existance and 
permissoin check. If the method returns SKIP, it has to send responses before 
and after processing. For example, before opening the data output stream, the 
method has to notify the client with a response code 150. Similarly, after the 
data transfer, the method has to notify the client with a response code 226. In 
case of any error, the method should send different response codes like 450, 
425, 426, 551. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadEnd </TD>
-<TD class="confluenceTd"> This notification method will be called to indicate 
that the file transfer is successful and the server has send the replies in 
RETR command.  </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRmdirStart </TD>
-<TD class="confluenceTd"> Before directory deletion this method will be called 
during RMD command. Before this FtpServer will not check anything like 
directory existance or permission. The requested directory name can be get from 
request argument. If the method returns the SKIP, it has to send appropriate 
response codes to clients like 250, 450,                              550. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRmdirEnd </TD>
-<TD class="confluenceTd"> This method will be called after the invocation of 
the RMD command. In this case the FtpServer has already sent the reply message. 
</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onMkdirStart </TD>
-<TD class="confluenceTd"> Before directory creation this method will be called 
during MKD command. Before this FtpServer will not check anything like 
directory existance or permission. The requested directory name can be get from 
request argument. If it returns SKIP, it has to send appropriate response codes 
to clients like 250, 550. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onMkdirEnd </TD>
-<TD class="confluenceTd"> This method will be called if the directory creation 
is successful in MKD command. In this case the FtpServer has already sent the 
reply message.  </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendStart </TD>
-<TD class="confluenceTd"> This is file append request notification method 
called in APPE command. The file name can be get from the request argument. We 
can get the data input stream from request. This will be called before the 
permission check. If the method returns SKIP, it has to send responses before 
and after processing. For example, before opening the data input stream, the 
method has to notify the client with a response code 150. Similarly, after the 
data transfer, the method has to notify the client with a response              
                code 226. In case of any error, the method should send 
different response codes like 450, 425, 426, 551. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendEnd </TD>
-<TD class="confluenceTd"> This is file append success notification method 
called in APPE command.  </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueStart </TD>
-<TD class="confluenceTd"> This is unique file create request notification 
method called in STOU command. We can get the data input stream from request. 
This will be called before the permission check. If the method returns SKIP, it 
has to send responses before and after processing. For example, before opening 
the data input stream, the method has                              to notify 
the client with a response code 150. Similarly, after the data transfer, the 
method has to notify the client with a response code 226. In case of any error, 
the method should send different response codes like 450, 425, 426, 551. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueEnd </TD>
-<TD class="confluenceTd"> This is unique file create success notification 
method called in STOU command. This notification method will be called to 
indicate the the server has send the replies.  </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRenameStart </TD>
-<TD class="confluenceTd"> This is file rename start notification method called 
in RNTO command. This will be called before the file existance or permission 
check. The &quot;rename from&quot; file object can be get from request object. 
If it returns SKIP, it has to send appropriate response codes like 503, 553, 
250. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRenameEnd </TD>
-<TD class="confluenceTd"> This is file rename success notification method 
called in RNFR command. This will be called before the file existance or 
permission check. The &quot;rename from&quot; file object an be get from 
request object. This notification method will be called after the invocation of 
the RNTO command and the server has send the reply message.  </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onSite </TD>
-<TD class="confluenceTd"> This is SITE command start notification method. It 
gives a chance to implement custom SITE command. If this method returns SKIP or 
DISCONNECT, the existing SITE commands will not be executed. </TD>
-</TR>
-</TBODY></TABLE>
-</DIV></p>
+<table>
+<thead>
+<tr>
+<th>Method</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>onLogin</td>
+<td>Client login notification method. This will be called after the user 
authentication. In this case the FtpServer has already sent the login OK (230) 
reply. This is called during FTP PASS request. The FTP session will be 
disconnected in the return value is FtpletResult.DISCONNECT.</td>
+</tr>
+<tr>
+<td>onDeleteStart</td>
+<td>Before file deletion this method will be called. Before this FtpServer 
will not check anything like file existence or permission. The requested file 
name can be get from request argument. We can get the file object from the 
request file system view. This is called in DELE FTP command. The method should 
send some responses (like 250, 450, 550) in case of SKIP return value. In this 
case, the server will skip the command processing and the ftplet has to send 
appropriate response values.</td>
+</tr>
+<tr>
+<td>onDeleteEnd</td>
+<td>This method will be called after the file deletion, successful or not. In 
this case the FtpServer has already sent the reply message. This is called in 
DELE FTP command.</td>
+</tr>
+<tr>
+<td>onUploadStart</td>
+<td>This method will be called before the file upload. The file name can be 
get from the request argument. We can get the data input stream from request. 
This will be called before the permission check. This is called during STOR 
command. If the method returns SKIP, it has to send responses before and after 
processing. For example, before opening the data input stream, the method has 
to notify the client with a response code 150. Similarly, after the data 
transfer, the method has to notify the client with a response code 226. In case 
of any error, the method should send different response codes like 450, 425, 
426, 551.</td>
+</tr>
+<tr>
+<td>onUploadEnd</td>
+<td>This notification method will be called to indicate that the file transfer 
is successful and the server has send the replies. In case of any error this 
method will not be called. This is called in STOR command.</td>
+</tr>
+<tr>
+<td>onDownloadStart</td>
+<td>This is file download request notification method called during RETR 
command. This will be called before the file download. We can get the file name 
argument from request. Similarly, the data output stream can be get from the 
request. This will be called before the file existance and permissoin check. If 
the method returns SKIP, it has to send responses before and after processing. 
For example, before opening the data output stream, the method has to notify 
the client with a response code 150. Similarly, after the data transfer, the 
method has to notify the client with a response code 226. In case of any error, 
the method should send different response codes like 450, 425, 426, 551.</td>
+</tr>
+<tr>
+<td>onDownloadEnd</td>
+<td>This notification method will be called to indicate that the file transfer 
is successful and the server has send the replies in RETR command.</td>
+</tr>
+<tr>
+<td>onRmdirStart</td>
+<td>Before directory deletion this method will be called during RMD command. 
Before this FtpServer will not check anything like directory existance or 
permission. The requested directory name can be get from request argument. If 
the method returns the SKIP, it has to send appropriate response codes to 
clients like 250, 450, 550.</td>
+</tr>
+<tr>
+<td>onRmdirEnd</td>
+<td>This method will be called after the invocation of the RMD command. In 
this case the FtpServer has already sent the reply message.</td>
+</tr>
+<tr>
+<td>onMkdirStart</td>
+<td>Before directory creation this method will be called during MKD command. 
Before this FtpServer will not check anything like directory existance or 
permission. The requested directory name can be get from request argument. If 
it returns SKIP, it has to send appropriate response codes to clients like 250, 
550.</td>
+</tr>
+<tr>
+<td>onMkdirEnd</td>
+<td>This method will be called if the directory creation is successful in MKD 
command. In this case the FtpServer has already sent the reply message.</td>
+</tr>
+<tr>
+<td>onAppendStart</td>
+<td>This is file append request notification method called in APPE command. 
The file name can be get from the request argument. We can get the data input 
stream from request. This will be called before the permission check. If the 
method returns SKIP, it has to send responses before and after processing. For 
example, before opening the data input stream, the method has to notify the 
client with a response code 150. Similarly, after the data transfer, the method 
has to notify the client with a response code 226. In case of any error, the 
method should send different response codes like 450, 425, 426, 551.</td>
+</tr>
+<tr>
+<td>onAppendEnd</td>
+<td>This is file append success notification method called in APPE 
command.</td>
+</tr>
+<tr>
+<td>onUploadUniqueStart</td>
+<td>This is unique file create request notification method called in STOU 
command. We can get the data input stream from request. This will be called 
before the permission check. If the method returns SKIP, it has to send 
responses before and after processing. For example, before opening the data 
input stream, the method has to notify the client with a response code 150. 
Similarly, after the data transfer, the method has to notify the client with a 
response code 226. In case of any error, the method should send different 
response codes like 450, 425, 426, 551.</td>
+</tr>
+<tr>
+<td>onUploadUniqueEnd</td>
+<td>This is unique file create success notification method called in STOU 
command. This notification method will be called to indicate the the server has 
send the replies.</td>
+</tr>
+<tr>
+<td>onRenameStart</td>
+<td>This is file rename start notification method called in RNTO command. This 
will be called before the file existance or permission check. The "rename from" 
file object can be get from request object. If it returns SKIP, it has to send 
appropriate response codes like 503, 553, 250.</td>
+</tr>
+<tr>
+<td>onRenameEnd</td>
+<td>This is file rename success notification method called in RNFR command. 
This will be called before the file existance or permission check. The "rename 
from" file object an be get from request object. This notification method will 
be called after the invocation of the RNTO command and the server has send the 
reply message.</td>
+</tr>
+<tr>
+<td>onSite</td>
+<td>This is SITE command start notification method. It gives a chance to 
implement custom SITE command. If this method returns SKIP or DISCONNECT, the 
existing SITE commands will not be executed.</td>
+</tr>
+</tbody>
+</table>
 <h2 id="response-codes">Response Codes</h2>
 <p>This section gives an overview on different response codes which might be 
useful in developing custom ftplet. These commands might be used when the 
ftplet method return value is SKIP.</p>
-<p><DIV class="table-wrap">
-<TABLE class="confluenceTable"><TBODY>
-<TR>
-<TH class="confluenceTh"> Method </TH>
-<TH class="confluenceTh"> Response Code </TH>
-<TH class="confluenceTh"> Description </TH>
-</TR>
-<TR>
-<TD class="confluenceTd"> onConnect </TD>
-<TD class="confluenceTd"> 220 </TD>
-<TD class="confluenceTd"> Service ready for new user. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onConnect </TD>
-<TD class="confluenceTd"> 530 </TD>
-<TD class="confluenceTd"> No server access from the IP. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onConnect </TD>
-<TD class="confluenceTd"> 530 </TD>
-<TD class="confluenceTd"> Maximum server connection has been reached. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDisconnect </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onLogin </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDeleteStart </TD>
-<TD class="confluenceTd"> 250 </TD>
-<TD class="confluenceTd"> Requested file action okay </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDeleteStart </TD>
-<TD class="confluenceTd"> 450 </TD>
-<TD class="confluenceTd"> No permission to delete. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDeleteStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Not a valid file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDeleteStart </TD>
-<TD class="confluenceTd"> 450 </TD>
-<TD class="confluenceTd"> Can't delete file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDeleteEnd </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadStart </TD>
-<TD class="confluenceTd"> 150 </TD>
-<TD class="confluenceTd"> File status okay; about to open data connection. 
</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadStart </TD>
-<TD class="confluenceTd"> 226 </TD>
-<TD class="confluenceTd"> Transfer complete. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Invalid path. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Permission denied. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadStart </TD>
-<TD class="confluenceTd"> 425 </TD>
-<TD class="confluenceTd"> Can't open data connection. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadStart </TD>
-<TD class="confluenceTd"> 426 </TD>
-<TD class="confluenceTd"> Data connection error. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadStart </TD>
-<TD class="confluenceTd"> 551 </TD>
-<TD class="confluenceTd"> Error on output file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadEnd </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadStart </TD>
-<TD class="confluenceTd"> 150 </TD>
-<TD class="confluenceTd"> File status okay; about to open data connection. 
</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadStart </TD>
-<TD class="confluenceTd"> 226 </TD>
-<TD class="confluenceTd"> Transfer complete. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> No such file or directory. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Not a plain file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Permission denied. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadStart </TD>
-<TD class="confluenceTd"> 425 </TD>
-<TD class="confluenceTd"> Can't open data connection. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadStart </TD>
-<TD class="confluenceTd"> 426 </TD>
-<TD class="confluenceTd"> Data connection error. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadStart </TD>
-<TD class="confluenceTd"> 551 </TD>
-<TD class="confluenceTd"> Error on input file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onDownloadEnd </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRmdirStart </TD>
-<TD class="confluenceTd"> 250 </TD>
-<TD class="confluenceTd"> Directory removed. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRmdirStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Not a valid directory. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRmdirStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Permission denied. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRmdirStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Can't remove directory. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRmdirEnd </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onMkdirStart </TD>
-<TD class="confluenceTd"> 250 </TD>
-<TD class="confluenceTd"> Directory created. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onMkdirStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Not a valid file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onMkdirStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Permission denied </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onMkdirStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Directory already exists. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onMkdirStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Can't create directory. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onMkdirEnd </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendStart </TD>
-<TD class="confluenceTd"> 150 </TD>
-<TD class="confluenceTd"> File status okay; about to open data connection. 
</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendStart </TD>
-<TD class="confluenceTd"> 226 </TD>
-<TD class="confluenceTd"> Transfer complete. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Not a plain file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Permission denied. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendStart </TD>
-<TD class="confluenceTd"> 425 </TD>
-<TD class="confluenceTd"> Can't open data connection. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendStart </TD>
-<TD class="confluenceTd"> 426 </TD>
-<TD class="confluenceTd"> Data connection error. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendStart </TD>
-<TD class="confluenceTd"> 551 </TD>
-<TD class="confluenceTd"> Error on output file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onAppendEnd </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueStart </TD>
-<TD class="confluenceTd"> 150 </TD>
-<TD class="confluenceTd"> File status okay; about to open data connection. 
</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueStart </TD>
-<TD class="confluenceTd"> 250 </TD>
-<TD class="confluenceTd"> filename: Transfer started. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueStart </TD>
-<TD class="confluenceTd"> 226 </TD>
-<TD class="confluenceTd"> filename: Transfer complete. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Unique file name error. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueStart </TD>
-<TD class="confluenceTd"> 550 </TD>
-<TD class="confluenceTd"> Permission denied. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueStart </TD>
-<TD class="confluenceTd"> 425 </TD>
-<TD class="confluenceTd"> Can't open data connection. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueStart </TD>
-<TD class="confluenceTd"> 426 </TD>
-<TD class="confluenceTd"> Data connection error. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueStart </TD>
-<TD class="confluenceTd"> 551 </TD>
-<TD class="confluenceTd"> Error on output file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onUploadUniqueEnd </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRenameStart </TD>
-<TD class="confluenceTd"> 250 </TD>
-<TD class="confluenceTd"> Requested file action okay, file renamed. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRenameStart </TD>
-<TD class="confluenceTd"> 503 </TD>
-<TD class="confluenceTd"> Can't find the file which has to be renamed. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRenameStart </TD>
-<TD class="confluenceTd"> 553 </TD>
-<TD class="confluenceTd"> Not a valid file name. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRenameStart </TD>
-<TD class="confluenceTd"> 553 </TD>
-<TD class="confluenceTd"> Permission denied. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRenameStart </TD>
-<TD class="confluenceTd"> 553 </TD>
-<TD class="confluenceTd"> No such file or directory. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRenameStart </TD>
-<TD class="confluenceTd"> 553 </TD>
-<TD class="confluenceTd"> Can't rename file. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onRenameEnd </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-<TD class="confluenceTd"> <BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onSite </TD>
-<TD class="confluenceTd"> 200 </TD>
-<TD class="confluenceTd"> Command SITE okay. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onSite </TD>
-<TD class="confluenceTd"> 530 </TD>
-<TD class="confluenceTd"> Permission denied. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onSite </TD>
-<TD class="confluenceTd"> 502 </TD>
-<TD class="confluenceTd"> Not implemented. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> onSite </TD>
-<TD class="confluenceTd"> 500 </TD>
-<TD class="confluenceTd"> Execution failed. </TD>
-</TR>
-</TBODY></TABLE>
-</DIV></p>
+<table>
+<thead>
+<tr>
+<th>Method</th>
+<th>Response Code</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>onConnect</td>
+<td>220</td>
+<td>Service ready for new user.</td>
+</tr>
+<tr>
+<td>onConnect</td>
+<td>530</td>
+<td>No server access from the IP.</td>
+</tr>
+<tr>
+<td>onConnect</td>
+<td>530</td>
+<td>Maximum server connection has been reached.</td>
+</tr>
+<tr>
+<td>onDisconnect</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onLogin</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onDeleteStart</td>
+<td>250</td>
+<td>Requested file action okay</td>
+</tr>
+<tr>
+<td>onDeleteStart</td>
+<td>450</td>
+<td>No permission to delete.</td>
+</tr>
+<tr>
+<td>onDeleteStart</td>
+<td>550</td>
+<td>Not a valid file.</td>
+</tr>
+<tr>
+<td>onDeleteStart</td>
+<td>450</td>
+<td>Can't delete file.</td>
+</tr>
+<tr>
+<td>onDeleteEnd</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onUploadStart</td>
+<td>150</td>
+<td>File status okay; about to open data connection.</td>
+</tr>
+<tr>
+<td>onUploadStart</td>
+<td>226</td>
+<td>Transfer complete.</td>
+</tr>
+<tr>
+<td>onUploadStart</td>
+<td>550</td>
+<td>Invalid path.</td>
+</tr>
+<tr>
+<td>onUploadStart</td>
+<td>550</td>
+<td>Permission denied.</td>
+</tr>
+<tr>
+<td>onUploadStart</td>
+<td>425</td>
+<td>Can't open data connection.</td>
+</tr>
+<tr>
+<td>onUploadStart</td>
+<td>426</td>
+<td>Data connection error.</td>
+</tr>
+<tr>
+<td>onUploadStart</td>
+<td>551</td>
+<td>Error on output file.</td>
+</tr>
+<tr>
+<td>onUploadEnd</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onDownloadStart</td>
+<td>150</td>
+<td>File status okay; about to open data connection.</td>
+</tr>
+<tr>
+<td>onDownloadStart</td>
+<td>226</td>
+<td>Transfer complete.</td>
+</tr>
+<tr>
+<td>onDownloadStart</td>
+<td>550</td>
+<td>No such file or directory.</td>
+</tr>
+<tr>
+<td>onDownloadStart</td>
+<td>550</td>
+<td>Not a plain file.</td>
+</tr>
+<tr>
+<td>onDownloadStart</td>
+<td>550</td>
+<td>Permission denied.</td>
+</tr>
+<tr>
+<td>onDownloadStart</td>
+<td>425</td>
+<td>Can't open data connection.</td>
+</tr>
+<tr>
+<td>onDownloadStart</td>
+<td>426</td>
+<td>Data connection error.</td>
+</tr>
+<tr>
+<td>onDownloadStart</td>
+<td>551</td>
+<td>Error on input file.</td>
+</tr>
+<tr>
+<td>onDownloadEnd</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onRmdirStart</td>
+<td>250</td>
+<td>Directory removed.</td>
+</tr>
+<tr>
+<td>onRmdirStart</td>
+<td>550</td>
+<td>Not a valid directory.</td>
+</tr>
+<tr>
+<td>onRmdirStart</td>
+<td>550</td>
+<td>Permission denied.</td>
+</tr>
+<tr>
+<td>onRmdirStart</td>
+<td>550</td>
+<td>Can't remove directory.</td>
+</tr>
+<tr>
+<td>onRmdirEnd</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onMkdirStart</td>
+<td>250</td>
+<td>Directory created.</td>
+</tr>
+<tr>
+<td>onMkdirStart</td>
+<td>550</td>
+<td>Not a valid file.</td>
+</tr>
+<tr>
+<td>onMkdirStart</td>
+<td>550</td>
+<td>Permission denied</td>
+</tr>
+<tr>
+<td>onMkdirStart</td>
+<td>550</td>
+<td>Directory already exists.</td>
+</tr>
+<tr>
+<td>onMkdirStart</td>
+<td>550</td>
+<td>Can't create directory.</td>
+</tr>
+<tr>
+<td>onMkdirEnd</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onAppendStart</td>
+<td>150</td>
+<td>File status okay; about to open data connection.</td>
+</tr>
+<tr>
+<td>onAppendStart</td>
+<td>226</td>
+<td>Transfer complete.</td>
+</tr>
+<tr>
+<td>onAppendStart</td>
+<td>550</td>
+<td>Not a plain file.</td>
+</tr>
+<tr>
+<td>onAppendStart</td>
+<td>550</td>
+<td>Permission denied.</td>
+</tr>
+<tr>
+<td>onAppendStart</td>
+<td>425</td>
+<td>Can't open data connection.</td>
+</tr>
+<tr>
+<td>onAppendStart</td>
+<td>426</td>
+<td>Data connection error.</td>
+</tr>
+<tr>
+<td>onAppendStart</td>
+<td>551</td>
+<td>Error on output file.</td>
+</tr>
+<tr>
+<td>onAppendEnd</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onUploadUniqueStart</td>
+<td>150</td>
+<td>File status okay; about to open data connection.</td>
+</tr>
+<tr>
+<td>onUploadUniqueStart</td>
+<td>250</td>
+<td>filename: Transfer started.</td>
+</tr>
+<tr>
+<td>onUploadUniqueStart</td>
+<td>226</td>
+<td>filename: Transfer complete.</td>
+</tr>
+<tr>
+<td>onUploadUniqueStart</td>
+<td>550</td>
+<td>Unique file name error.</td>
+</tr>
+<tr>
+<td>onUploadUniqueStart</td>
+<td>550</td>
+<td>Permission denied.</td>
+</tr>
+<tr>
+<td>onUploadUniqueStart</td>
+<td>425</td>
+<td>Can't open data connection.</td>
+</tr>
+<tr>
+<td>onUploadUniqueStart</td>
+<td>426</td>
+<td>Data connection error.</td>
+</tr>
+<tr>
+<td>onUploadUniqueStart</td>
+<td>551</td>
+<td>Error on output file.</td>
+</tr>
+<tr>
+<td>onUploadUniqueEnd</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onRenameStart</td>
+<td>250</td>
+<td>Requested file action okay, file renamed.</td>
+</tr>
+<tr>
+<td>onRenameStart</td>
+<td>503</td>
+<td>Can't find the file which has to be renamed.</td>
+</tr>
+<tr>
+<td>onRenameStart</td>
+<td>553</td>
+<td>Not a valid file name.</td>
+</tr>
+<tr>
+<td>onRenameStart</td>
+<td>553</td>
+<td>Permission denied.</td>
+</tr>
+<tr>
+<td>onRenameStart</td>
+<td>553</td>
+<td>No such file or directory.</td>
+</tr>
+<tr>
+<td>onRenameStart</td>
+<td>553</td>
+<td>Can't rename file.</td>
+</tr>
+<tr>
+<td>onRenameEnd</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>onSite</td>
+<td>200</td>
+<td>Command SITE okay.</td>
+</tr>
+<tr>
+<td>onSite</td>
+<td>530</td>
+<td>Permission denied.</td>
+</tr>
+<tr>
+<td>onSite</td>
+<td>502</td>
+<td>Not implemented.</td>
+</tr>
+<tr>
+<td>onSite</td>
+<td>500</td>
+<td>Execution failed.</td>
+</tr>
+</tbody>
+</table>
 <h2 id="configuration">Configuration</h2>
 <p>Ftplet will get the Ftplet specific configuration as the init() method 
argument.</p>
 <h2 id="implementation">Implementation</h2>
 <p>Ftplets are regular POJOs. If running the server as embedded they can be 
added to the FtpletContainer as normal instances of the object. If using the 
XML configuration, they are configured and Spring beans within the ftplets 
element. Here's an example:</p>
-<p><DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent 
panelContent">
-<PRE class="code-java">
-&lt;ftplets&gt; 
-  &lt;ftplet name=<SPAN class="code-quote">&quot;ftplet1&quot;</SPAN>&gt; 
-    &lt;beans:bean class=<SPAN 
class="code-quote">&quot;org.apache.ftpserver.examples.MyFtplet&quot;</SPAN>&gt;
 
-      &lt;beans:property name=<SPAN class="code-quote">&quot;foo&quot;</SPAN> 
value=<SPAN class="code-quote">&quot;123&quot;</SPAN> /&gt; 
-    &lt;/beans:bean&gt; 
-  &lt;/ftplet&gt; 
-&lt;/ftplets&gt;
-</PRE>
-</DIV></DIV></p>
+<div class="codehilite"><pre><span class="nt">&lt;ftplets&gt;</span>
+    <span class="nt">&lt;ftplet</span> <span class="na">name=</span><span 
class="s">&quot;ftplet1&quot;</span><span class="nt">&gt;</span>
+        <span class="nt">&lt;beans:bean</span> <span 
class="na">class=</span><span 
class="s">&quot;org.apache.ftpserver.examples.MyFtplet&quot;</span><span 
class="nt">&gt;</span>
+            <span class="nt">&lt;beans:property</span> <span 
class="na">name=</span><span class="s">&quot;foo&quot;</span> <span 
class="na">value=</span><span class="s">&quot;123&quot;</span> <span 
class="nt">/&gt;</span>
+        <span class="nt">&lt;/beans:bean&gt;</span>
+    <span class="nt">&lt;/ftplet&gt;</span>
+<span class="nt">&lt;/ftplets&gt;</span>
+</pre></div>
+
+
 <h2 id="deployment">Deployment</h2>
 <p>The Ftplet must be added to Apache FtpServer classpath so that the Ftplet 
can be loaded. There are three ways you can do that.</p>
 <ol>

Modified: websites/staging/mina/trunk/content/ftpserver/mailing_list.html
==============================================================================
--- websites/staging/mina/trunk/content/ftpserver/mailing_list.html (original)
+++ websites/staging/mina/trunk/content/ftpserver/mailing_list.html Wed Oct 31 
16:35:31 2012
@@ -111,69 +111,87 @@
 <p>General information about the FtpServer mailing lists can be found here.</p>
 <h2 id="for-users">For Users</h2>
 <p>Please use this list for any questions regarding how to use FtpServer in 
your application.</p>
-<p><DIV class="table-wrap">
-<TABLE class="confluenceTable"><TBODY>
-<TR>
-<TH class="confluenceTh"> Subscribe </TH>
-<TD class="confluenceTd"> <A 
href="mailto:ftpserver-users-subscr...@mina.apache.org"; class="external-link" 
rel="nofollow">ftpserver-users-subscr...@mina.apache.org</A> </TD>
-</TR>
-<TR>
-<TH class="confluenceTh"> Unsubscribe </TH>
-<TD class="confluenceTd"> <A 
href="mailto:ftpserver-users-unsubscr...@mina.apache.org"; class="external-link" 
rel="nofollow">ftpserver-users-unsubscr...@mina.apache.org</A> </TD>
-</TR>
-<TR>
-<TH class="confluenceTh"> Post </TH>
-<TD class="confluenceTd"> <A href="mailto:ftpserver-us...@mina.apache.org"; 
class="external-link" rel="nofollow">ftpserver-us...@mina.apache.org</A> </TD>
-</TR>
-<TR>
-<TH class="confluenceTh"> Archive </TH>
-<TD class="confluenceTd"> <A 
href="http://www.mail-archive.com/ftpserver-users@mina.apache.org/"; 
class="external-link" 
rel="nofollow">http://www.mail-archive.com/ftpserver-users@mina.apache.org/</A> 
</TD>
-</TR>
-</TBODY></TABLE>
-</DIV></p>
+<table>
+<thead>
+<tr>
+<th></th>
+<th></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Subscribe</td>
+<td><a 
href="mailto:ftpserver-users-subscr...@mina.apache.org";>ftpserver-users-subscr...@mina.apache.org</a></td>
+</tr>
+<tr>
+<td>Unsubscribe</td>
+<td><a 
href="mailto:ftpserver-users-unsubscr...@mina.apache.org";>ftpserver-users-unsubscr...@mina.apache.org</a></td>
+</tr>
+<tr>
+<td>Post</td>
+<td><a 
href="mailto:ftpserver-us...@mina.apache.org";>ftpserver-us...@mina.apache.org</a></td>
+</tr>
+<tr>
+<td>Archive</td>
+<td><a 
href="http://www.mail-archive.com/ftpserver-users@mina.apache.org/";>http://www.mail-archive.com/ftpserver-users@mina.apache.org/</a></td>
+</tr>
+</tbody>
+</table>
 <h2 id="for-developers">For Developers</h2>
 <p>We use the MINA developers list for asking technical questions, discussing 
feature suggestions or general questions regarding the project.</p>
-<p><DIV class="table-wrap">
-<TABLE class="confluenceTable"><TBODY>
-<TR>
-<TH class="confluenceTh"> Subscribe </TH>
-<TD class="confluenceTd"> <A href="mailto:dev-subscr...@mina.apache.org"; 
class="external-link" rel="nofollow">dev-subscr...@mina.apache.org</A> </TD>
-</TR>
-<TR>
-<TH class="confluenceTh"> Unsubscribe </TH>
-<TD class="confluenceTd"> <A href="mailto:dev-unsubscr...@mina.apache.org"; 
class="external-link" rel="nofollow">dev-unsubscr...@mina.apache.org</A> </TD>
-</TR>
-<TR>
-<TH class="confluenceTh"> Post </TH>
-<TD class="confluenceTd"> <A href="mailto:d...@mina.apache.org"; 
class="external-link" rel="nofollow">d...@mina.apache.org</A> </TD>
-</TR>
-<TR>
-<TH class="confluenceTh"> Archive </TH>
-<TD class="confluenceTd"> <A 
href="http://www.mail-archive.com/dev@mina.apache.org/"; class="external-link" 
rel="nofollow">http://www.mail-archive.com/dev@mina.apache.org/</A> </TD>
-</TR>
-</TBODY></TABLE>
-</DIV></p>
+<table>
+<thead>
+<tr>
+<th></th>
+<th></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Subscribe</td>
+<td><a 
href="mailto:dev-subscr...@mina.apache.org";>dev-subscr...@mina.apache.org</a></td>
+</tr>
+<tr>
+<td>Unsubscribe</td>
+<td><a 
href="mailto:dev-unsubscr...@mina.apache.org";>dev-unsubscr...@mina.apache.org</a></td>
+</tr>
+<tr>
+<td>Post</td>
+<td><a href="mailto:d...@mina.apache.org";>d...@mina.apache.org</a></td>
+</tr>
+<tr>
+<td>Archive</td>
+<td><a 
href="http://www.mail-archive.com/dev@mina.apache.org/";>http://www.mail-archive.com/dev@mina.apache.org/</a></td>
+</tr>
+</tbody>
+</table>
 <h2 id="subversion-commits">Subversion commits</h2>
-<p><DIV class="table-wrap">
-<TABLE class="confluenceTable"><TBODY>
-<TR>
-<TH class="confluenceTh"> Subscribe </TH>
-<TD class="confluenceTd"> <A href="mailto:commits-subscr...@mina.apache.org"; 
class="external-link" rel="nofollow">commits-subscr...@mina.apache.org</A> </TD>
-</TR>
-<TR>
-<TH class="confluenceTh"> Unsubscribe </TH>
-<TD class="confluenceTd"> <A href="mailto:commits-unsubscr...@mina.apache.org"; 
class="external-link" rel="nofollow">commits-unsubscr...@mina.apache.org</A> 
</TD>
-</TR>
-<TR>
-<TH class="confluenceTh"> Post </TH>
-<TD class="confluenceTd"> <A href="mailto:commits@mina.apache.org"; 
class="external-link" rel="nofollow">commits@mina.apache.org</A> </TD>
-</TR>
-<TR>
-<TH class="confluenceTh"> Archive </TH>
-<TD class="confluenceTd"> <A 
href="http://www.mail-archive.com/commits@mina.apache.org/"; 
class="external-link" 
rel="nofollow">http://www.mail-archive.com/commits@mina.apache.org/</A> </TD>
-</TR>
-</TBODY></TABLE>
-</DIV></p>
+<table>
+<thead>
+<tr>
+<th></th>
+<th></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Subscribe</td>
+<td><a 
href="mailto:commits-subscr...@mina.apache.org";>commits-subscr...@mina.apache.org</a></td>
+</tr>
+<tr>
+<td>Unsubscribe</td>
+<td><a 
href="mailto:commits-unsubscr...@mina.apache.org";>commits-unsubscr...@mina.apache.org</a></td>
+</tr>
+<tr>
+<td>Post</td>
+<td><a href="mailto:commits@mina.apache.org";>commits@mina.apache.org</a></td>
+</tr>
+<tr>
+<td>Archive</td>
+<td><a 
href="http://www.mail-archive.com/commits@mina.apache.org/";>http://www.mail-archive.com/commits@mina.apache.org/</a></td>
+</tr>
+</tbody>
+</table>
 
                 </div><!-- rightColumn -->
                 <div id="endContent"></div>


Reply via email to