[jboss-svn-commits] JBL Code SVN: r8117 - labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Dec 7 08:53:36 EST 2006


Author: b_georges
Date: 2006-12-07 08:53:33 -0500 (Thu, 07 Dec 2006)
New Revision: 8117

Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FtpGatewayListener.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayException.java
Log:
Changes related to FtpGateway and SecureFtp Implementation JBESB-197/127

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java	2006-12-07 13:37:51 UTC (rev 8116)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java	2006-12-07 13:53:33 UTC (rev 8117)
@@ -1,403 +1,162 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.soa.esb.listeners.gateway;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.URI;
-import java.util.Collection;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.couriers.Courier;
-import org.jboss.soa.esb.couriers.CourierException;
-import org.jboss.soa.esb.couriers.CourierFactory;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.services.registry.RegistryException;
-import org.jboss.soa.esb.util.Util;
-
-/**
- * 
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
- * @since Version 4.0
- *
- */
-public class FileGatewayListener implements Runnable
-{
-
-    public FileGatewayListener(GatewayListenerController commandListener, ConfigTree config) 
-    	throws Exception 
-    {
-    	_config		= config;
-    	_controller	= commandListener;
-    	_sleepBetweenPolls = 10000;			//  milliseconds
-        checkMyParms();
-    } // __________________________________
-
-	public void run() 
-	{
-        _logger.debug("run() method of "+this.getClass().getSimpleName()
-        		+" started on thread "+Thread.currentThread().getName());
-		if (null!=_serviceName)
-			try {	_controller.register(_config,_myEpr); }
-			catch (RegistryException e1) 
-				{	_logger.warn("unable to register service",e1); }
-
-		boolean bSleep = false;
-		while (_controller.continueLooping()) 
-        {
-			//  only sleep in between - not the first time
-			if (bSleep)
-			{	long lUntil = System.currentTimeMillis()+_sleepBetweenPolls;
-				while (System.currentTimeMillis() < lUntil)
-				{
-					try { Thread.sleep(1000); }
-					catch (InterruptedException e) { lUntil = 0; }
-					if (! _controller.continueLooping())
-						break;
-				}
-			}
-			else
-				bSleep = true;
-			if (! _controller.continueLooping())
-				break;
-
-			for (File fileIn : _inputDirectory.listFiles(_fileFilter))
-            {
-        		// Try to rename - if unsuccessful, somebody else got it first
-        		File fileWork = new File(fileIn.getParent(),fileIn.getName()+_workingSuffix);
-        		if (! fileIn.renameTo(fileWork))
-        			continue;
-
-        		Throwable thrown = null;
-        		String text = null;
-	            try
-	            {
-	            	Object obj = _processMethod.invoke(_composer,new Object[] {fileWork} );
-	        		if (null==obj)
-	        		{
-	        			_logger.warn("Action class method <"+_processMethod.getName()+"> returned a null object");
-	        			continue;
-	        		}
-        			boolean bSent = false;
-	        		for (EPR current : _targetEprs)
-	        		{
-	        			_courier = CourierFactory.getCourier(current);
-	        			if (_courier.deliver((org.jboss.soa.esb.message.Message)obj))
-	        			{
-	        				bSent = true;
-	        				break;
-	        			}
-	        		}
-	        		if (! bSent)
-	        		{
-	        			text = "Target service <"+_targetServiceCategory+","+_targetServiceName+"> is not registered";
-	        			thrown = new Exception(text);
-	        		}
-	            }
-
-		            catch (InvocationTargetException e)	
-		            {
-		            	thrown = e;
-		            	text = "Problems invoking method <"+_processMethod.getName()+">";
-		            	
-		            }
-		            catch (IllegalAccessException e)	
-		            {	
-		            	thrown = e;
-		            	text = "Problems invoking method <"+_processMethod.getName()+">";
-		            }
-	        		catch (ClassCastException e)
-	        		{
-	        			thrown = e;
-	        			text = "Action class method <"+_processMethod.getName()+"> returned a non Message object";
-	        		}
-	        		catch (CourierException e)
-	        		{
-	        			thrown = e;
-	        			if (null!=_courier)
-	        				text = "Courier <"+_courier.getClass().getName()+".deliver(Message) FAILED";
-	        			else
-	        				text = "NULL courier can't deliver Message";
-	        		}
-        		
-        		if (null==thrown)
-        		{
-            		File fileOK		=  new File(_postProcessDirectory,fileIn.getName()+_postProcessSuffix);
-        			if (_deleteAfterOK)
-        				fileWork.delete();
-        			else
-        			{
-        				fileOK.delete();
-        				fileWork.renameTo(fileOK);
-        			}
-        		}
-        		else
-        		{
-        			thrown.printStackTrace();
-        			_logger.error(text,thrown);
-            		File fileError	=  new File(_errorDirectory,fileIn.getName()+_errorSuffix);
-        			fileWork.renameTo(fileError);
-        		}
-            }
-        }
-        
-		if (null!=_serviceName)
-			try { _controller.unRegister(_serviceCategory, _serviceName,_myEpr); }
-			catch (RegistryException e1){	_logger.warn("unable to unRegister service",e1); }
-        _logger.debug("run() method of "+this.getClass().getSimpleName()
-        		+" finished on thread "+Thread.currentThread().getName());
-
-    } // ________________________________
-
-    /**
-     * Check for mandatory and optional attributes in parameter tree
-     * 
-     * @throws Exception -
-     *             if mandatory atts are not right or actionClass not in
-     *             classpath
-     */
-    protected void checkMyParms() throws Exception 
-    {
-        // Third arg is null - Exception will be thrown if attribute is not found
-    	_targetServiceCategory	= _controller.obtainAtt(_config, ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, null);
-    	_targetServiceName	= _controller.obtainAtt(_config, ListenerTagNames.TARGET_SERVICE_NAME_TAG, null);
-    	_targetEprs		= _controller.getEprs(_targetServiceCategory,_targetServiceName);
-    	if (null==_targetEprs || _targetEprs.size()<1)
-        	throw new ConfigurationException("EPR <"+_targetServiceName+"> not found in registry");
-
-        // Polling interval
-        String sAux = _config.getAttribute(ListenerTagNames.POLL_LATENCY_SECS_TAG);
-        if (! Util.isNullString(sAux))
-	        try { _sleepBetweenPolls = 1000 * Long.parseLong(sAux); }
-	        catch (NumberFormatException e)
-	        	{ _logger.warn("Invalid poll latency - keeping default of "+(_sleepBetweenPolls/1000)); }
-	    else
-	    {
-	    	_logger.warn("No value specified for: "+ListenerTagNames.POLL_LATENCY_SECS_TAG
-	    			+" -  Using default of "+(_sleepBetweenPolls/1000));
-	    }
-        
-        resolveComposerClass();
-
-	//  INPUT directory and suffix  (used for FileFilter)
-	  String sInpDir = _controller.obtainAtt(_config,ListenerTagNames.FILE_INPUT_DIR_TAG,null);
-      _inputDirectory = fileFromString(sInpDir);
-      seeIfOkToWorkOnDir(_inputDirectory);
-
-      _inputSuffix  = _controller.obtainAtt(_config,ListenerTagNames.FILE_INPUT_SFX_TAG,null);
-      _inputSuffix  = _inputSuffix.trim();
-      if (_inputSuffix.length()<1)
-    	  throw new Exception ("Invalid "+ListenerTagNames.FILE_INPUT_SFX_TAG+" attribute");
-	  _fileFilter = new FileEndsWith(_inputSuffix);
-
-	//  WORK suffix (will rename in input directory)
-      _workingSuffix	= _controller.obtainAtt(_config,ListenerTagNames.FILE_WORK_SFX_TAG,".esbWork").trim();
-      if (_workingSuffix.length()<1)
-    	  throw new Exception ("Invalid "+ListenerTagNames.FILE_WORK_SFX_TAG+" attribute");
-      if (_inputSuffix.equals(_workingSuffix))
-    	  throw new Exception("Work suffix must differ from input suffix <"+_workingSuffix+">");
-      if (null==_config.getAttribute(ListenerTagNames.FILE_WORK_SFX_TAG))
-	    	_logger.warn("No value specified for: "+ListenerTagNames.FILE_WORK_SFX_TAG
-	    			+" -  Using default of '"+_workingSuffix+"'");
-
-    //    ERROR directory and suffix (defaults to input dir and ".esbError" suffix)
-      String sErrDir = _controller.obtainAtt(_config,ListenerTagNames.FILE_ERROR_DIR_TAG,sInpDir);
-      _errorDirectory = fileFromString(sErrDir);
-      if (null==_config.getAttribute(ListenerTagNames.FILE_ERROR_DIR_TAG))
-	    	_logger.warn("No value specified for: "+ListenerTagNames.FILE_ERROR_DIR_TAG
-	    			+" -  Using input directory ("+sErrDir+")");
-      seeIfOkToWorkOnDir(_errorDirectory);
-
-      _errorSuffix  = _controller.obtainAtt(_config,ListenerTagNames.FILE_ERROR_SFX_TAG,".esbError").trim();
-      if (_errorSuffix.length()<1)
-    	  throw new Exception ("Invalid "+ListenerTagNames.FILE_ERROR_SFX_TAG+" attribute");
-      if (null==_config.getAttribute(ListenerTagNames.FILE_ERROR_SFX_TAG))
-	    	_logger.warn("No value specified for: "+ListenerTagNames.FILE_ERROR_SFX_TAG
-	    			+" -  Using default of '"+_errorSuffix+"'");
-      if (_errorDirectory.equals(_inputDirectory) && _inputSuffix.equals(_errorSuffix))
-    	  throw new Exception("Error suffix must differ from input suffix <"+_errorSuffix+">");
-
-
-   //    Do users wish to delete files that were processed OK ?
-      String sPostDel = _controller.obtainAtt(_config,ListenerTagNames.FILE_POST_DEL_TAG,"false").trim();
-      if (null==_config.getAttribute(ListenerTagNames.FILE_POST_DEL_TAG))
-	    	_logger.warn("No value specified for: "+ListenerTagNames.FILE_POST_DEL_TAG
-	    			+" -  Using default of 'false'");
-      _deleteAfterOK = Boolean.parseBoolean(sPostDel);
-      if (_deleteAfterOK)
-    	  return;
-
-    //    POST (done) directory and suffix (defaults to input dir and ".esbDone" suffix)
-      String sPostDir = _controller.obtainAtt(_config,ListenerTagNames.FILE_POST_DIR_TAG,sInpDir);
-      if (null==_config.getAttribute(ListenerTagNames.FILE_POST_DIR_TAG))
-	    	_logger.warn("No value specified for: "+ListenerTagNames.FILE_POST_DIR_TAG
-	    			+" -  Using default of '"+sPostDir+"'");
-      _postProcessDirectory = fileFromString(sPostDir);
-      seeIfOkToWorkOnDir(_postProcessDirectory);
-      _postProcessSuffix  = _controller.obtainAtt(_config,ListenerTagNames.FILE_POST_SFX_TAG,".esbDone").trim();
-      if (null==_config.getAttribute(ListenerTagNames.FILE_POST_SFX_TAG))
-	    	_logger.warn("No value specified for: "+ListenerTagNames.FILE_POST_SFX_TAG
-	    			+" -  Using default of '"+_postProcessSuffix+"'");
-
-      if (_postProcessDirectory.equals(_inputDirectory))
-      {	if (_postProcessSuffix.length()<1)
-    	  throw new Exception ("Invalid "+ListenerTagNames.FILE_POST_SFX_TAG+" attribute");
-      	if (_postProcessSuffix.equals(_inputSuffix))
-    	  throw new Exception("Post process suffix must differ from input suffix <"+_postProcessSuffix+">");
-      }
-    } //________________________________
-    
-    protected void resolveComposerClass() throws Exception
-    {
-        // Look for first "action" element - only first one will be used
-        String tagName = ListenerTagNames.ACTION_ELEMENT_TAG;
-        ConfigTree actionElement = _config.getFirstChild(tagName);
-        String sProcessMethod =  null;
-        if (null!=actionElement)
-        {	// class attribute
-            _composerName	= _controller.obtainAtt(actionElement,ListenerTagNames.ACTION_CLASS_TAG,null);
-            _composerClass = Class.forName(_composerName);
-        	Constructor oConst = _composerClass.getConstructor(new Class[] {ConfigTree.class});
-        	_composer= oConst.newInstance(_config);
-        	tagName	= ListenerTagNames.PROCESS_METHOD_TAG;
-        	sProcessMethod = _controller.obtainAtt(_config,tagName,tagName);
-        }
-        else
-        {
-        	_composerName = PackageFileContents.class.getName();
-        	_composerClass= PackageFileContents.class;
-        	_composer	= new PackageFileContents();
-        	sProcessMethod = "process";
-        	_logger.warn("No <"+ListenerTagNames.ACTION_ELEMENT_TAG+"> element found in cofiguration"
-	    			+" -  Using default composer class : "+_composerName);
-        }
-
-    	_processMethod = _composerClass.getMethod(sProcessMethod,new Class[] {Object.class});
-    } //________________________________
-
-    protected void seeIfOkToWorkOnDir (File p_oDir) throws Exception
-	{
-      if (! p_oDir.exists())   
-    	  throw new Exception ("Directory "+p_oDir.toString()+" not found");
-      if (!p_oDir.isDirectory())
-    	  throw new Exception(p_oDir.toString()+" is not a directory");
-      if (!p_oDir.canRead())
-    	  throw new Exception("Can't read directory "+p_oDir.toString());
-      if (! p_oDir.canWrite()) 
-    	  throw new Exception ("Can't write/rename in directory "+p_oDir.toString());
-	} //________________________________
-	
-    private File fileFromString(String file) 
-    {
-        try {	return new File(new URI(file)); } 
-        catch(Exception e) { return new File(file); }
-    } //________________________________
-
-    private class FileEndsWith implements FileFilter
-    {
-      String m_sSuffix;
-      FileEndsWith(String p_sEnd) throws Exception
-      {
-        m_sSuffix = p_sEnd;
-        if (Util.isNullString(m_sSuffix))
-          throw new Exception("Must specify file extension");
-      } //______________________________
-
-      public boolean accept(File p_f)
-      {	return (p_f.isFile())
-        	? p_f.toString().endsWith(m_sSuffix)
-        	: false;
-      } //______________________________
-    } //____________________________________________________
-    
-/**
- * Default gateway action for files
- * <p/>It will just drop the file contents into a Message
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
- * @since Version 4.0
- *
- */
-    private static class PackageFileContents
-    {
-    	public Message process (Object obj) throws Exception
-    	{
-    		if (! (obj instanceof File))
-    			throw new Exception ("Object must be instance of File");
-
-    		Message message = MessageFactory.getInstance().getMessage();
-    		message.getBody().setContents(getFileContent((File)obj));    		
-    		return message;
-    	}
-    	
-    	private byte[] getFileContent(File file) throws Exception
-    	{
-    		ByteArrayOutputStream out = new ByteArrayOutputStream();
-    		byte[] ba = new byte[1000];
-    		int iQread;
-
-    		FileInputStream inp = new FileInputStream(file);
-    		while (-1!= (iQread=inp.read(ba)))
-    			if (iQread > 0)
-    				out.write(ba,0,iQread);
-    		inp.close();
-
-    		out.close();
-    		return out.toByteArray();
-    	}
-    } //____________________________________________________
-
-    protected final static Logger _logger = Logger.getLogger(FileGatewayListener.class);
-
-    protected ConfigTree 		_config;
-    protected GatewayListenerController _controller;
-    protected long 				_sleepBetweenPolls;   //  milliseconds
-
-    protected String			_serviceCategory, _serviceName;
-    protected String			_targetServiceCategory ,_targetServiceName;
-    protected EPR				_myEpr;
-    protected Collection<EPR>	_targetEprs;
-
-    protected String			_composerName;
-    protected Class 			_composerClass;
-    protected Object			_composer;
-    protected Method			_processMethod;
-    
-    protected Courier			_courier;
-    
-    protected boolean			_deleteAfterOK;
-    protected File				_inputDirectory		,_errorDirectory	,_postProcessDirectory;
-    protected String			_inputSuffix		,_postProcessSuffix
-    							,_workingSuffix		,_errorSuffix
-    							;
-    protected FileFilter		_fileFilter;
-} //____________________________________________________________________________
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.listeners.gateway;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.util.Util;
+
+public class FileGatewayListener extends AbstractFileGateway 
+{
+	protected FileGatewayListener() {}
+    public FileGatewayListener(GatewayListenerController commandListener, ConfigTree config)
+    	throws Exception
+    {
+    	super(commandListener,config);
+    	  _fileFilter = new FileEndsWith(_inputSuffix);
+    }
+
+    protected void checkMyParms() throws Exception 
+    {
+    	super.checkMyParms();
+    }
+
+	@Override
+    protected void seeIfOkToWorkOnDir (File p_oDir) throws GatewayException
+	{
+      if (! p_oDir.exists())   
+    	  throw new GatewayException ("Directory "+p_oDir.toString()+" not found");
+      if (!p_oDir.isDirectory())
+    	  throw new GatewayException(p_oDir.toString()+" is not a directory");
+      if (!p_oDir.canRead())
+    	  throw new GatewayException("Can't read directory "+p_oDir.toString());
+      if (! p_oDir.canWrite()) 
+    	  throw new GatewayException ("Can't write/rename in directory "+p_oDir.toString());
+	} //________________________________
+
+	@Override
+	boolean deleteFile(File file) throws GatewayException 
+	{
+		return file.delete();
+	}
+
+
+	@Override
+	byte[] getFileContents(File file) throws GatewayException 
+	{
+		try
+		{
+    		ByteArrayOutputStream out = new ByteArrayOutputStream();
+    		byte[] ba = new byte[1000];
+    		int iQread;
+			FileInputStream inp = new FileInputStream(file);
+			while (-1!= (iQread=inp.read(ba)))
+				if (iQread > 0)
+					out.write(ba,0,iQread);
+			inp.close();
+    		out.close();
+    		return out.toByteArray();
+		}
+		catch (IOException e) { throw new GatewayException(e); }
+	}
+
+
+	@Override
+	File[] getFileList(String suffix) throws GatewayException 
+	{
+		return _inputDirectory.listFiles(_fileFilter);
+	}
+
+
+	@Override
+	boolean renameFile(File from, File to) throws GatewayException 
+	{
+		return from.renameTo(to);
+	}
+	
+	@Override
+	void getDefaultComposer() throws GatewayException 
+	{
+    	_composerName = PackageFileContents.class.getName();
+    	_composerClass= PackageFileContents.class;
+    	_composer	= new PackageFileContents();
+    	_logger.warn("No <"+ListenerTagNames.ACTION_ELEMENT_TAG+"> element found in cofiguration"
+    			+" -  Using default composer class : "+_composerName);
+	}
+//______________________________________________________________________________
+    /**
+     * Default gateway action for files
+     * <p/>It will just drop the file contents into a Message
+     * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+     * @since Version 4.0
+     *
+     */
+    public class PackageFileContents
+    {
+    	public Message process (Object obj) throws Exception
+    	{
+    		if (! (obj instanceof File))
+    			throw new Exception ("Object must be instance of File");
+
+    		Message message = MessageFactory.getInstance().getMessage();
+    		message.getBody().setContents(getFileContent((File)obj));    		
+    		return message;
+    	}
+    	
+    	private byte[] getFileContent(File file) throws Exception
+    		{ return getFileContents(file); }
+    } //____________________________________________________
+    
+    /**
+     *  Simple file filter for local filesystem
+     *  Will accept only files that end with the String supplied at constructor time 
+     *
+     */
+    private class FileEndsWith implements FileFilter
+    {
+      String m_sSuffix;
+      FileEndsWith(String p_sEnd) throws Exception
+      {
+        m_sSuffix = p_sEnd;
+        if (Util.isNullString(m_sSuffix))
+          throw new Exception("Must specify file extension");
+      } //______________________________
+
+      public boolean accept(File p_f)
+      {	return (p_f.isFile())
+        	? p_f.toString().endsWith(m_sSuffix)
+        	: false;
+      } //______________________________
+    } //____________________________________________________
+
+    private FileFilter		_fileFilter;
+
+}

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FtpGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FtpGatewayListener.java	2006-12-07 13:37:51 UTC (rev 8116)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FtpGatewayListener.java	2006-12-07 13:53:33 UTC (rev 8117)
@@ -28,134 +28,143 @@
 
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.util.FtpClientUtil;
+import org.jboss.soa.esb.util.RemoteFileSystem;
+import org.jboss.soa.esb.util.RemoteFileSystemFactory;
 import org.jboss.soa.esb.util.Util;
 
-public class FtpGatewayListener extends AnewFileGatewayListener 
+public class FtpGatewayListener extends FileGatewayListener
 {
-	protected FtpGatewayListener() {}
-    public FtpGatewayListener(GatewayListenerController commandListener, ConfigTree config)
-    	throws Exception
-    {
-    	super(commandListener,config);
-    }
+	// protected FtpGatewayListener()
+	// {
+	// super();
+	// }
 
-    protected void checkMyParms() throws Exception 
-    {
-    	super.checkMyParms();
-        
-        
-        FtpClientUtil ftpClient = new FtpClientUtil(_config,false);
-        ftpClient.quit();
-        
-        //  Copy FTP parameters to be passed to the action class (inside the WorkingFile class)
-        //  This is a kludge - we have to get back to this (ES)
-        String[] sa = new String[] 
-        {FtpClientUtil.PARMS_FTP_SERVER
-        ,FtpClientUtil.PARMS_USER
-        ,FtpClientUtil.PARMS_PASSWD
-        ,FtpClientUtil.PARMS_PASSIVE
-        ,FtpClientUtil.PARMS_PORT
-        };
-        for (String sProp : sa)
-        {
-      	  String sVal = _config.getAttribute(sProp);
-      	  if (!Util.isNullString(sVal))
-      		  _ftpArguments.put(sProp,sVal);
-        }    }
+	public FtpGatewayListener(GatewayListenerController commandListener,
+			ConfigTree config) throws Exception
+	{
+		super(commandListener, config);
+	}
 
+	protected void checkMyParms() throws Exception
+	{
+		super.checkMyParms();
+		RemoteFileSystem rfs = RemoteFileSystemFactory.getRemoteFileSystem(_config, true);
+		rfs.quit();
+		FtpClientUtil ftpClient = new FtpClientUtil(_config, false);
+		ftpClient.quit();
+
+		// Copy FTP parameters to be passed to the action class (inside the
+		// WorkingFile class)
+		// This is a kludge - we have to get back to this (ES)
+		// Maybe we could get these out of the FTPEpr? (GEO)
+		String[] sa = new String[]
+		{ RemoteFileSystem.PARMS_FTP_SERVER, RemoteFileSystem.PARMS_USER,
+				RemoteFileSystem.PARMS_PASSWD, RemoteFileSystem.PARMS_PASSIVE,
+				RemoteFileSystem.PARMS_PORT };
+		for (String sProp : sa)
+		{
+			String sVal = _config.getAttribute(sProp);
+			if (!Util.isNullString(sVal))
+				_ftpArguments.put(sProp, sVal);
+		}
+	}
+
 	@Override
-    protected void seeIfOkToWorkOnDir (File p_oDir) throws GatewayException
+	protected void seeIfOkToWorkOnDir(File p_oDir) throws GatewayException
 	{
-		// Bruno:  is there any way that the remote directory exists, that we can 
+		// Bruno: is there any way that the remote directory exists, that we can
 		// read it, and that that we can write on it ?
-		// please see the AnewFileGatewayListener class to see what the method does there
-	} //________________________________
+		// please see the FileGatewayListener class to see what the method
+		// does there
+	} // ________________________________
 
-	@Override
-	boolean deleteFile(File file) throws GatewayException 
+	// @Override
+	boolean deleteFile(File file) throws GatewayException
 	{
-		// Bruno:  please check this and the rest of the methods.
-		// I just copied the RemoteDirectoryPoller, but I know you have been working on this
-		// so what I copied here could be stale
-		FtpClientUtil ftpClient=null;
+		// Bruno: please check this and the rest of the methods.
+		// I just copied the RemoteDirectoryPoller, but I know you have been
+		// working on this so what I copied here could be stale
+		FtpClientUtil ftpClient = null;
 		try
 		{
-			ftpClient = new FtpClientUtil(_config,true);
+			ftpClient = new FtpClientUtil(_config, true);
 			ftpClient.deleteRemoteFile(file.toString());
 			return true;
-		}
-		catch (Exception e) { throw new GatewayException(e); }
-		finally
+		} catch (Exception e)
 		{
-			if (null!=ftpClient)
+			throw new GatewayException(e);
+		} finally
+		{
+			if (null != ftpClient)
 				ftpClient.quit();
 		}
 	}
 
-
-	@Override
-	byte[] getFileContents(File file) throws GatewayException 
+	// @Override
+	byte[] getFileContents(File file) throws GatewayException
 	{
-		FtpClientUtil ftpClient=null;
+		FtpClientUtil ftpClient = null;
 		try
 		{
-			File temp = File.createTempFile("FTPdown",".tmp");
+			File temp = File.createTempFile("FTPdown", ".tmp");
 			temp.delete();
-			ftpClient = new FtpClientUtil(_config,true);
+			ftpClient = new FtpClientUtil(_config, true);
 			ftpClient.downloadFile(file.toString(), temp.toString());
 			return getFileContents(temp);
-		}
-		catch (Exception e) { throw new GatewayException(e); }
-		finally
+		} catch (Exception e)
 		{
-			if (null!=ftpClient)
+			throw new GatewayException(e);
+		} finally
+		{
+			if (null != ftpClient)
 				ftpClient.quit();
 		}
 	}
 
-
-	@Override
-	File[] getFileList(String suffix) throws GatewayException 
+	// @Override
+	File[] getFileList(String suffix) throws GatewayException
 	{
 		FtpClientUtil ftpClient = null;
 		try
-		{	
-			ftpClient = new FtpClientUtil(_config,true);
-			ftpClient.setRemoteDir(FtpClientUtil.fileToFtpString(_inputDirectory));
+		{
+			ftpClient = new FtpClientUtil(_config, true);
+			ftpClient.setRemoteDir(FtpClientUtil
+					.fileToFtpString(_inputDirectory));
 			String[] sa = ftpClient.getFileListFromRemoteDir(_inputSuffix);
-			File[] oaRet = new File[(null==sa)?0:sa.length];
+			File[] oaRet = new File[(null == sa) ? 0 : sa.length];
 			int i1 = 0;
-			if (null!=sa)
+			if (null != sa)
 				for (String sCurr : sa)
 					oaRet[i1++] = new File(sCurr);
 			return oaRet;
-		}
-		catch (Exception e) { throw new GatewayException(e); }
-		finally
+		} catch (Exception e)
 		{
-			if (null!=ftpClient)
+			throw new GatewayException(e);
+		} finally
+		{
+			if (null != ftpClient)
 				ftpClient.quit();
 		}
 	}
 
-
-	@Override
-	boolean renameFile(File from, File to) throws GatewayException 
+	// @Override
+	boolean renameFile(File from, File to) throws GatewayException
 	{
-		FtpClientUtil ftpClient=null;
+		FtpClientUtil ftpClient = null;
 		try
 		{
-			ftpClient = new FtpClientUtil(_config,true);
+			ftpClient = new FtpClientUtil(_config, true);
 			ftpClient.renameInRemoteDir(from.toString(), to.toString());
 			return true;
-		}
-		catch (Exception e) { throw new GatewayException(e); }
-		finally
+		} catch (Exception e)
 		{
-			if (null!=ftpClient)
+			throw new GatewayException(e);
+		} finally
+		{
+			if (null != ftpClient)
 				ftpClient.quit();
 		}
 	}
-	
-    protected Map<String,String> _ftpArguments = new HashMap<String, String>();    
+
+	protected Map<String, String> _ftpArguments = new HashMap<String, String>();
 }

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayException.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayException.java	2006-12-07 13:37:51 UTC (rev 8116)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayException.java	2006-12-07 13:53:33 UTC (rev 8117)
@@ -1,3 +1,25 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
 package org.jboss.soa.esb.listeners.gateway;
 
 import org.jboss.soa.esb.BaseException;
@@ -2,10 +24,29 @@
 
-public class GatewayException extends BaseException
-{
-	private static final long serialVersionUID = 1L;
-	public GatewayException() { super(); }
-	public GatewayException(Throwable cause) { super(cause); }
-	public GatewayException(String message) { super(message); }
-	public GatewayException(String message, Throwable cause)
-		{ super(message, cause); }
+/**
+ * Dispatch Exception.
+ * @author b_georges
+ * @since Version 4.0
+ */
+public class GatewayException extends BaseException {
+    
+    private static final long serialVersionUID = 1L;
+    
+    /**
+     * Construct an exception instance.
+     * @param message Exception message.
+     */
+    public GatewayException(String message) { super(message); }
+    
+    /**
+     * Construct an exception instance.
+     * @param message Exception message.
+     * @param cause Exception cause.
+     */
+    public GatewayException(String message, Throwable cause) { super(message, cause); }
+    
+    /**
+     * Construct an exception instance.
+     * @param cause Exception cause.
+     */
+    public GatewayException(Throwable cause) { super(cause); }
 }




More information about the jboss-svn-commits mailing list