This is an automated email from the ASF dual-hosted git repository. elecharny pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mina-site.git
The following commit(s) were added to refs/heads/master by this push: new bde533181 Added some FtpServer documentation bde533181 is described below commit bde533181cf7f38f81085511f8c875419916e56c Author: emmanuel lecharny <elecha...@apache.org> AuthorDate: Thu Jun 29 15:38:13 2023 +0200 Added some FtpServer documentation --- .../documentation/ch1-tutorial/ch1-tutorials.md | 15 ++++++ .../documentation/ch6-internals/ch6-internals.md | 53 ++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/source/ftpserver-project/documentation/ch1-tutorial/ch1-tutorials.md b/source/ftpserver-project/documentation/ch1-tutorial/ch1-tutorials.md new file mode 100644 index 000000000..5e1212617 --- /dev/null +++ b/source/ftpserver-project/documentation/ch1-tutorial/ch1-tutorials.md @@ -0,0 +1,15 @@ +--- +type: ftpserver +title: Chapter 1 - Tutorials +navUp: ../documentation-toc.html +navUpText: Documentation +navNext: ../ch2-using-ftpserver/ch2-using-ftpserver.html +navNextText: Chapter 2 - Using FTPServer +--- + +# Chapter 1 - Tutorials + +In this chapter, we will give you two exemples on how to install and user **Apache MINA FTPServer**. + +* [1.1 - Embedding FtpServer in 5 minutes](ch1.1-tutorials-embedding.html) +* [1.2 - Running FtpServer stand-alone in 5 minutes](ch1.2-tutorials-running.html) diff --git a/source/ftpserver-project/documentation/ch6-internals/ch6-internals.md b/source/ftpserver-project/documentation/ch6-internals/ch6-internals.md new file mode 100644 index 000000000..0711ca50d --- /dev/null +++ b/source/ftpserver-project/documentation/ch6-internals/ch6-internals.md @@ -0,0 +1,53 @@ +--- +type: ftpserver +title: Chapter 6 - FtpServer internals +navPrev: ../ch5-developping/ch5-developping.html +navPrevText: Chapter 5 - Developping +navUp: ../documentation-toc.html +navUpText: Documentation +--- + +# Chapter 6 - Internals + +Creating a **FtpServer** instance is done using a **FtpServerFactory**. The is done with such code: + +```java + FtpServerFactory serverFactory = new FtpServerFactory(); + FtpServer server = serverFactory.createServer(); + server.start(); + ... +``` + +Let'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: + +```goat + + .-------------. +| FtpletContext | + '-------------' + ^ + | .----------------. + '--| FtpServerContext | + '----------------' + ^ + | .-------------------------. + '--| DefaultFtpServerContext | + '-------------------------' + +``` +