Example: Implementing a new X-TIME command
From CFTP
In this example I will show how to implement a very simple command that outputs current time. When a user inputs X-TIME a server replies something like this:
Server’s time is: 10/10/2006 12:18:02
This is the source of the command:
public class XTimeCommand extends AbstractCommand {
private String pattern = "dd/MM/yyyy HH:mm";
public void setPattern(String pattern) {
this.pattern = pattern;
}
public Reply execute() {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
reply.setCode("200");
reply.setText("Server's time is: "+sdf.format(new Date()));
return reply;
}
}
Now you have to update your beans.xml so that the command becomes available, as follows:
<bean id="xtimeCommand" class="com.mysite.coloradoftp.XTimeCommand" singleton="false"> <property name="pattern" value="dd.MM.yyyy HH:mm:ss"/> </bean>
<bean id="commandFactory"
class="com.coldcore.coloradoftp.command.impl.GenericCommandFactory">
<constructor-arg index="0">
<map>
<entry key="USER" value="userCommand"/>
<entry key="PASS" value="passCommand"/>
<entry key="PWD" value="pwdCommand"/>
...............
<entry key="X-TIME" value="xtimeCommand"/>
</map>
</constructor-arg>
</bean>
The first XML defines the command object (named xtimeCommand). The second XML piece shows how to add this xtimeCommand to the command factory. Now if a user inputs X-TIME then the xtimeCommand will be executed.
Return to Examples Index

