Allow SITE commands to be configured as any other command (FTPSERVER-343)
git-svn-id: https://svn.apache.org/repos/asf/mina/ftpserver/trunk@886070 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/src/main/java/org/apache/ftpserver/command/CommandFactoryFactory.java b/core/src/main/java/org/apache/ftpserver/command/CommandFactoryFactory.java
index 491a05f..0ac2d24 100644
--- a/core/src/main/java/org/apache/ftpserver/command/CommandFactoryFactory.java
+++ b/core/src/main/java/org/apache/ftpserver/command/CommandFactoryFactory.java
@@ -61,6 +61,11 @@
import org.apache.ftpserver.command.impl.RNFR;
import org.apache.ftpserver.command.impl.RNTO;
import org.apache.ftpserver.command.impl.SITE;
+import org.apache.ftpserver.command.impl.SITE_DESCUSER;
+import org.apache.ftpserver.command.impl.SITE_HELP;
+import org.apache.ftpserver.command.impl.SITE_STAT;
+import org.apache.ftpserver.command.impl.SITE_WHO;
+import org.apache.ftpserver.command.impl.SITE_ZONE;
import org.apache.ftpserver.command.impl.SIZE;
import org.apache.ftpserver.command.impl.STAT;
import org.apache.ftpserver.command.impl.STOR;
@@ -120,6 +125,12 @@
DEFAULT_COMMAND_MAP.put("RNTO", new RNTO());
DEFAULT_COMMAND_MAP.put("SITE", new SITE());
DEFAULT_COMMAND_MAP.put("SIZE", new SIZE());
+ DEFAULT_COMMAND_MAP.put("SITE_DESCUSER", new SITE_DESCUSER());
+ DEFAULT_COMMAND_MAP.put("SITE_HELP", new SITE_HELP());
+ DEFAULT_COMMAND_MAP.put("SITE_STAT", new SITE_STAT());
+ DEFAULT_COMMAND_MAP.put("SITE_WHO", new SITE_WHO());
+ DEFAULT_COMMAND_MAP.put("SITE_ZONE", new SITE_ZONE());
+
DEFAULT_COMMAND_MAP.put("STAT", new STAT());
DEFAULT_COMMAND_MAP.put("STOR", new STOR());
DEFAULT_COMMAND_MAP.put("STOU", new STOU());
diff --git a/core/src/main/java/org/apache/ftpserver/command/impl/SITE.java b/core/src/main/java/org/apache/ftpserver/command/impl/SITE.java
index 52d3291..7bc106f 100644
--- a/core/src/main/java/org/apache/ftpserver/command/impl/SITE.java
+++ b/core/src/main/java/org/apache/ftpserver/command/impl/SITE.java
@@ -44,9 +44,6 @@
private final Logger LOG = LoggerFactory.getLogger(SITE.class);
- private static final HashMap<String, Command> COMMAND_MAP = new HashMap<String, Command>(
- 16);
-
/**
* Execute command.
*/
@@ -74,7 +71,7 @@
// call appropriate command method
String siteRequest = "SITE_" + argument;
- Command command = (Command) COMMAND_MAP.get(siteRequest);
+ Command command = context.getCommandFactory().getCommand(siteRequest);
try {
if (command != null) {
command.execute(session, context, request);
@@ -93,18 +90,4 @@
}
}
-
- // initialize all the SITE command handlers
- static {
- COMMAND_MAP.put("SITE_DESCUSER",
- new org.apache.ftpserver.command.impl.SITE_DESCUSER());
- COMMAND_MAP.put("SITE_HELP",
- new org.apache.ftpserver.command.impl.SITE_HELP());
- COMMAND_MAP.put("SITE_STAT",
- new org.apache.ftpserver.command.impl.SITE_STAT());
- COMMAND_MAP
- .put("SITE_WHO", new org.apache.ftpserver.command.impl.SITE_WHO());
- COMMAND_MAP.put("SITE_ZONE",
- new org.apache.ftpserver.command.impl.SITE_ZONE());
- }
}