| Home >> All >> jsd >> [ ftp Javadoc ] |
| | jsd.ftp.gui.* (4) | | jsd.ftp.img.* (10) | | jsd.ftp.io.* (10) | | jsd.ftp.jar.* (23) |
| | jsd.ftp.server.* (44) | | jsd.ftp.tpl.* (2) | | jsd.ftp.util.* (13) |
jsd.ftp: Javadoc index of package jsd.ftp.
Package Samples:
jsd.ftp.gui
jsd.ftp.img
jsd.ftp.img.gif
jsd.ftp.io
jsd.ftp.jar
jsd.ftp.jar.view
jsd.ftp.server
jsd.ftp.server.ftp
jsd.ftp.server.ftp.gui
jsd.ftp.server.ftp.usermanager
jsd.ftp.server.gui
jsd.ftp.tpl
jsd.ftp.util
Classes:
DbUserManager: This is another database based user manager class. I have tested it using MySQL and Oracle database. The table structure is: CREATE TABLE FTP_USER ( LOGIN_ID VARCHAR(64) NOT NULL PRIMARY KEY, PASSWORD VARCHAR(64), HOME_DIR VARCHAR(128) NOT NULL, ENABLED VARCHAR(8) NOT NULL, WRITE_PERM VARCHAR(8) NOT NULL, IDLE_TIME INT NOT NULL, UPLOAD_RATE INT NOT NULL, DOWNLOAD_RATE INT NOT NULL )
FtpTree: This is FTP user interface tree structure. Currently it is very simple. It looks like: FTP | +-- User (User management) | +-- Ip (IP restrictions) | +-- Connection (Connection monitor) | +-- Spy (Spy user activities) | +-- Statistics (Global statistics) | +-- Upload (File upload statistics) | +-- Download (File download statistics) | +-- Delete (File deletion statistics) | +-- About (Ftp server summary)
Template: This class is used to load files into OutputStream after parsing the template file. It supports variables, for block, if-then-else block and iterator block. It has only one public method - loadFile(OutputStream, Map) . It also supports vector indexing. It stores the file data in a byte array. We may face some problems later due to character encoding. But for the time being it works fine. Template syntax.
FtpConnection: This class handles each ftp connection. Here all the ftp command methods take two arguments - a ftp request and a writer object. This is the main backbone of the ftp server. The ftp command method signature is: public void doXYZ(FtpRequest request, FtpWriter out) throws IOException . Here XYZ is the capitalized ftp command.
StreamConnector: Connect one java.io.InputStream with a java.io.OutputStream . Features: Buffered transfer or not (default unbuffered). Threaded transfer or not (default false). Set transfer rate limit (default no limit). Stop transfer at any time. Get current byte transferred. Transfer notification
FtpStatus: Ftp status line parser class. This class loads FtpStatus.properties file from the classpath. It generates the descriptive ftp status for astatus code. The actual response depends on the status code, the ftp command and the passed argument list.
LdapUserManager: Ldap based user manager class. Tested using Netscape Directory Server 4.1. The LDAP requires the password to be nonempty for simple authentication. So instead of using empty string password (""), we will be using single space (" ").
Queue: Queue (first in first out) implementation. It supports two types of queues. Queue is empty throws NoSuchElementException. Queue is empty waits for the new element. Null values cannot be inserted.
FtpConfig: Ftp configuration class. It has all ftp server configuration parameters. This is not hot-editable. Parameters will be loaded once during server startup. We can add our own config parameters.
JarAllExtractor: This is JAR file extractor class. It extracts the JAR file in a separate thread. Where we are passing a MyJarObserver object to track the current status of this decompression.
JarExtractor: This is JAR file extractor class. It extracts the JAR file in a separate thread. Where we are passing a MyJarObserver object to track the current status of this decompression.
JarSelectiveExtractor: This is JAR file extractor class. It extracts the JAR file in a separate thread. Where we are passing a MyJarObserver object to track the current status of this decompression.
FtpRequest: Ftp command request class. We can access command, line and argument using {CMD}, {ARG} within ftp status file. This represents single Ftp request.
ServerEngine: This is the starting point of all the servers. It invokes a new listener thread. BaseServer object is used to serve the request.
ThreadPool: This is a simple thread pool implementation. We add Runnable objects and the free thread will pick the object from the queue.
LogFile: Log class to write log data. It uses RandomAccessFile . If the log file size exceeds the limit, a new log file will be created.
Block: Template block representation class. Here block means all the data between '{' and '}' - excluding both first '{' and last '}'.
UserManager: This is the base class of all the user manager classes. If we want to add a new user manager, we have to override this class.
PropertiesUserManager: Properties file based UserManager implementation. We use user.properties file to store user data.
FtpServer: This is ftp server starting point. For each request it instantiates a new BaseFtpConnection object.
BaseProperties: This class encapsulates java.util.Properties to add java primitives and some other java classes.
JarObserverContainer: This class contains JarObserver objects. This class is itself a JarObserver class.
BaseImage: This is the abstract base class of all the image classes. All the image classes have to extend this class.
BaseFtpConnection: This is a generic ftp connection handler. It delegates the request to appropriate methods in subclasses.
FtpUser: Ftp user class. It handles all user specific file system task. It supports user virtual root directory.
| Home | Contact Us | Privacy Policy | Terms of Service |