[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