[exo-jcr-commits] exo-jcr SVN: r217 - in jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp: client and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Oct 5 07:04:40 EDT 2009
Author: nfilotto
Date: 2009-10-05 07:04:40 -0400 (Mon, 05 Oct 2009)
New Revision: 217
Modified:
jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/FtpServerImpl.java
jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/FtpServiceImpl.java
jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/client/FtpClientCommandThread.java
jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/config/FtpConfig.java
jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/config/FtpConfigImpl.java
Log:
EXOJCR-166: Support separated ear delivery
Modified: jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/FtpServerImpl.java
===================================================================
--- jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/FtpServerImpl.java 2009-10-05 11:03:36 UTC (rev 216)
+++ jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/FtpServerImpl.java 2009-10-05 11:04:40 UTC (rev 217)
@@ -32,6 +32,7 @@
import java.io.File;
import java.io.InputStream;
+import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
@@ -109,7 +110,21 @@
{
prepareCache();
- ServerSocket serverSocket = new ServerSocket(configuration.getCommandPort());
+ ServerSocket serverSocket = null;
+ int port = configuration.getCommandPort();
+ // Trying to find a port available
+ while (serverSocket == null)
+ {
+ try
+ {
+ serverSocket = new ServerSocket(port);
+ log.info("FTPServer started on port '" + port + "'");
+ }
+ catch (BindException e)
+ {
+ log.warn("Cannot launch the FTPServer on '" + (port++) + "', we try the next port number");
+ }
+ }
dataChannelManager = new FtpDataChannelManagerImpl(configuration);
Modified: jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/FtpServiceImpl.java
===================================================================
--- jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/FtpServiceImpl.java 2009-10-05 11:03:36 UTC (rev 216)
+++ jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/FtpServiceImpl.java 2009-10-05 11:04:40 UTC (rev 217)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.ftp;
+import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.services.command.impl.CommandService;
import org.exoplatform.services.ftp.config.FtpConfig;
@@ -46,12 +47,13 @@
private FtpConfig config = null;
- public FtpServiceImpl(InitParams params, CommandService commandService, RepositoryService repositoryService)
+ public FtpServiceImpl(InitParams params, CommandService commandService, RepositoryService repositoryService,
+ ExoContainerContext context)
{
this.commandService = commandService;
this.repositoryService = repositoryService;
- config = new FtpConfigImpl(params);
+ config = new FtpConfigImpl(context, params);
}
public void start()
Modified: jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/client/FtpClientCommandThread.java
===================================================================
--- jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/client/FtpClientCommandThread.java 2009-10-05 11:03:36 UTC (rev 216)
+++ jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/client/FtpClientCommandThread.java 2009-10-05 11:04:40 UTC (rev 217)
@@ -50,92 +50,96 @@
public void run()
{
- String portalContainerName = clientSession.getFtpServer().getConfiguration().getPortalContainerName();
+ ExoContainer container = clientSession.getFtpServer().getConfiguration().getPortalContainer();
- ExoContainer container = ExoContainerContext.getContainerByName(portalContainerName);
if (container == null)
{
if (log.isDebugEnabled())
{
- log.debug("Container " + portalContainerName + " not found.");
+ log.debug("No Portal Container found.");
}
container = ExoContainerContext.getTopContainer();
}
- ExoContainerContext.setCurrentContainer(container);
+ try
+ {
+ ExoContainerContext.setCurrentContainer(container);
- while (true)
- {
- try
+ while (true)
{
- String command = readLine();
-
- if (command == null)
+ try
{
- break;
- }
+ String command = readLine();
- if (!"".equals(command))
- {
- String logStr = "";
- String[] comms = command.split(" ");
+ if (command == null)
+ {
+ break;
+ }
- FtpCommand curCommand = clientSession.getFtpServer().getCommand(comms[0].toUpperCase());
+ if (!"".equals(command))
+ {
+ String logStr = "";
+ String[] comms = command.split(" ");
- logStr = comms[0].toUpperCase();
+ FtpCommand curCommand = clientSession.getFtpServer().getCommand(comms[0].toUpperCase());
- if (curCommand != null)
- {
- if (comms.length > 1)
+ logStr = comms[0].toUpperCase();
+
+ if (curCommand != null)
{
- for (int i = 2; i < comms.length; i++)
+ if (comms.length > 1)
{
- if ("".equals(comms[i]))
+ for (int i = 2; i < comms.length; i++)
{
- comms[1] += " ";
+ if ("".equals(comms[i]))
+ {
+ comms[1] += " ";
+ }
+ else
+ {
+ comms[1] += " " + comms[i];
+ }
}
- else
- {
- comms[1] += " " + comms[i];
- }
+
+ logStr += " " + comms[1];
}
- logStr += " " + comms[1];
+ FtpContext ftpContext = new FtpContext(clientSession, comms);
+ curCommand.execute(ftpContext);
}
+ else
+ {
+ clientSession.reply(String.format(FtpConst.Replyes.REPLY_500, comms[0].toUpperCase()));
+ clientSession.setPrevCommand(null);
+ }
- FtpContext ftpContext = new FtpContext(clientSession, comms);
- curCommand.execute(ftpContext);
}
- else
- {
- clientSession.reply(String.format(FtpConst.Replyes.REPLY_500, comms[0].toUpperCase()));
- clientSession.setPrevCommand(null);
- }
-
}
+ catch (SocketException exc)
+ {
+ break;
+ }
+ catch (Exception exc)
+ {
+ log.info("Unhandled exception. " + exc.getMessage(), exc);
+ break;
+ }
}
- catch (SocketException exc)
+
+ try
{
- break;
+ clientSession.logout();
}
catch (Exception exc)
{
log.info("Unhandled exception. " + exc.getMessage(), exc);
- break;
}
}
-
- try
+ finally
{
- clientSession.logout();
+ ExoContainerContext.setCurrentContainer(null);
}
- catch (Exception exc)
- {
- log.info("Unhandled exception. " + exc.getMessage(), exc);
- }
- ExoContainerContext.setCurrentContainer(null);
-
}
protected String readLine() throws Exception
Modified: jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/config/FtpConfig.java
===================================================================
--- jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/config/FtpConfig.java 2009-10-05 11:03:36 UTC (rev 216)
+++ jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/config/FtpConfig.java 2009-10-05 11:04:40 UTC (rev 217)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.services.ftp.config;
+import org.exoplatform.container.PortalContainer;
+
/**
* Created by The eXo Platform SAS Author : Vitaly Guly <gavrik-vetal at ukr.net/mail.ru>
*
@@ -57,6 +59,6 @@
int getTimeOut();
- String getPortalContainerName();
+ PortalContainer getPortalContainer();
}
Modified: jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/config/FtpConfigImpl.java
===================================================================
--- jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/config/FtpConfigImpl.java 2009-10-05 11:03:36 UTC (rev 216)
+++ jcr/trunk/component/ftp/src/main/java/org/exoplatform/services/ftp/config/FtpConfigImpl.java 2009-10-05 11:04:40 UTC (rev 217)
@@ -18,6 +18,9 @@
*/
package org.exoplatform.services.ftp.config;
+import org.exoplatform.container.ExoContainer;
+import org.exoplatform.container.ExoContainerContext;
+import org.exoplatform.container.PortalContainer;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.ValueParam;
import org.exoplatform.services.ftp.FtpConst;
@@ -95,11 +98,6 @@
public static final String INIT_PARAM_TIME_OUT = "timeout";
/**
- * Portal container name.
- */
- public static final String PORTAL_CONTAINER_NAME = "portalContainerName";
-
- /**
* Command port.
*/
private int _commandPort = 21;
@@ -180,16 +178,16 @@
protected boolean ENABLE_TRACE = true;
/**
- * Container name.
+ * Portal Container.
*/
- protected String portalContainerName = null;
+ protected PortalContainer _portalContainer;
/**
* Constructor.
*
* @param InitParams
*/
- public FtpConfigImpl(InitParams params)
+ public FtpConfigImpl(ExoContainerContext context, InitParams params)
{
ValueParam pCommandPort = params.getValueParam(INIT_PARAM_COMMAND_PORT);
@@ -267,8 +265,11 @@
_timeOutValue = new Integer(pTimeOut.getValue());
}
- ValueParam pPortalContainerName = params.getValueParam(PORTAL_CONTAINER_NAME);
- portalContainerName = pPortalContainerName != null ? pPortalContainerName.getValue() : "portal";
+ ExoContainer container = context.getContainer();
+ if (container instanceof PortalContainer)
+ {
+ _portalContainer = ((PortalContainer)container);
+ }
if (log.isDebugEnabled())
{
@@ -378,9 +379,9 @@
return _timeOutValue;
}
- public String getPortalContainerName()
+ public PortalContainer getPortalContainer()
{
- return portalContainerName;
+ return _portalContainer;
}
}
More information about the exo-jcr-commits
mailing list