You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by johper <ka...@hotmail.com> on 2007/03/14 16:40:32 UTC

FTP rename command

Hi,

Doing FTP file transfer from polling directory. In the FTP target directory
we have to use '.tmp' extension. After successfull transfer, that '.tmp'
file must be renamed. How can this be done with ServiceMix and/or FTPSender?

tia
-- 
View this message in context: http://www.nabble.com/FTP-rename-command-tf3402902s12049.html#a9477038
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: [implentation on an internal system host] FTP rename command

Posted by Guillaume Nodet <gn...@gmail.com>.
The lightweight components are kinda deprecated,
so I'm fine with new features going only into the
new versions.

On 3/22/07, Gert Vanthienen <ge...@skynet.be> wrote:
>
> L.S.,
>
> I added this rename behavior to servicemix-ftp.  You can now use an
> attribute uploadSuffix=".tmp" to get the desired the result.  The patch
> is attached to JIRA issue SM-889 [1].  If you want, I can also add the
> same modifications to the lightweight FTP component.  Isn't  there a way
> to share the message processing code between both components, so
> modifications become available to both variants without having to write
> the same code twice?
>
> Regards,
>
> Gert
>
>
> [1] https://issues.apache.org/activemq/browse/SM-889
>
> johper wrote:
> > Hi Gert!
> > Ofcourse I will test and try the patch, but for the moment I run the
> > leightweight variant, not "servicemix-ftp"...
> >
> > I fixed the FTP rename issue with a few lines of Java-code:
> >
> > ========= Java Code for doing FTP rename after successfull FTP transere,
> see
> > "quick and dirty" section ========
> > /*
> >  * Licensed to the Apache Software Foundation (ASF) under one or more
> >  * contributor license agreements.  See the NOTICE file distributed with
> >  * this work for additional information regarding copyright ownership.
> >  * The ASF licenses this file to You under the Apache License, Version
> 2.0
> >  * (the "License"); you may not use this file except in compliance with
> >  * the License.  You may obtain a copy of the License at
> >  *
> >  *      http://www.apache.org/licenses/LICENSE-2.0
> >  *
> >  * Unless required by applicable law or agreed to in writing, software
> >  * distributed under the License is distributed on an "AS IS" BASIS,
> >  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> >  * See the License for the specific language governing permissions and
> >  * limitations under the License.
> >  */
> > package org.apache.servicemix.components.net;
> >
> > import java.io.IOException;
> > import java.io.OutputStream;
> >
> > import javax.jbi.JBIException;
> > import javax.jbi.messaging.MessageExchange;
> > import javax.jbi.messaging.NormalizedMessage;
> >
> > import org.apache.commons.logging.Log;
> > import org.apache.commons.logging.LogFactory;
> > import org.apache.commons.net.SocketClient;
> > import org.apache.commons.net.ftp.FTPClient;
> > import org.apache.servicemix.components.util.DefaultFileMarshaler;
> > import org.apache.servicemix.components.util.FileMarshaler;
> > import org.apache.servicemix.components.util.OutBinding;
> >
> > /**
> >  * A component which sends a message to a file using FTP via the
> >  *  http://jakarta.apache.org/commons/net.html Jakarta Commons
> Net  library
> >  *
> >  * @version $Revision: 486715 $
> >  */
> > public class PostmanFTPSender extends OutBinding {
> >     private static final Log log =
> > LogFactory.getLog(PostmanFTPSender.class);
> >
> >     private FTPClientPool clientPool;
> >     private FileMarshaler marshaler = new DefaultFileMarshaler();
> >     private String uniqueFileName = "ServiceMix";
> >     private boolean overwrite = false;
> >     private String fileRenameSuffix = ".tmp";
> >
> >
> >     // Properties
> >
> >
> //-------------------------------------------------------------------------
> >     public void setFileRenameSuffix(String suffix)
> >     {
> >               fileRenameSuffix = suffix;
> >       }
> >
> >       public String getFileRenameSuffix()
> >       {
> >               return fileRenameSuffix;
> >       }
> >
> >     public FTPClientPool getClientPool() {
> >         return clientPool;
> >     }
> >
> >     public void setClientPool(FTPClientPool clientPool) {
> >         this.clientPool = clientPool;
> >     }
> >
> >     public FileMarshaler getMarshaler() {
> >         return marshaler;
> >     }
> >
> >     public void setMarshaler(FileMarshaler marshaler) {
> >         this.marshaler = marshaler;
> >     }
> >
> >     public String getUniqueFileName() {
> >         return uniqueFileName;
> >     }
> >
> >     /**
> >      * Sets the name used to make a unique name if no file name is
> available
> > on the message.
> >      *
> >      * @param uniqueFileName the new value of the unique name to use for
> > generating unique names
> >      */
> >     public void setUniqueFileName(String uniqueFileName) {
> >         this.uniqueFileName = uniqueFileName;
> >     }
> >
> >     public boolean isOverwrite() {
> >         return overwrite;
> >     }
> >
> >     public void setOverwrite(boolean overwrite) {
> >         this.overwrite = overwrite;
> >     }
> >
> >     // Implementation methods
> >
> >
> //-------------------------------------------------------------------------
> >     protected void init() throws JBIException {
> >         if (clientPool == null) {
> >             throw new IllegalArgumentException("You must initialise the
> > clientPool property");
> >         }
> >         super.init();
> >     }
> >
> >     protected void process(MessageExchange exchange, NormalizedMessage
> > message) throws Exception {
> >         FTPClient client = null;
> >         OutputStream out = null;
> >         String name = null;
> >         try {
> >             client = (FTPClient) getClientPool().borrowClient();
> >
> >             name = marshaler.getOutputName(exchange, message);
> >             if (name == null) {
> >                 if (uniqueFileName != null) {
> >                     out = client.storeUniqueFileStream(uniqueFileName);
> >                 }
> >                 else {
> >                     out = client.storeUniqueFileStream();
> >                 }
> >             }
> >             else {
> >                 out = client.storeFileStream(name);
> >                 if (out == null) {
> >                     // lets try overwrite the previous file?
> >                     if (overwrite) {
> >                         client.deleteFile(name);
> >                     }
> >                     out = client.storeFileStream(name);
> >                 }
> >             }
> >             if (out == null) {
> >                 throw new IOException("No output stream available for
> output
> > name: "
> >                 + name + ". Maybe the file already exists?");
> >             }
> >
> >             marshaler.writeMessage(exchange, message, out, name);
> >
> >             done(exchange);
> >
> >         }
> >         finally {
> >             if (out != null) {
> >                 try {
> >                     out.close();
> >                 }
> >                 catch (IOException e) {
> >                     log.error("Caught exception while closing stream on
> > error: " + e, e);
> >                 }
> >             }
> >             client.completePendingCommand();
> >
> >                       //------- Start QnD FTP (quick and dirty) rename
> fix.----------
> >                       if(client.rename(name, name.substring(0,
> name.length() -
> > 4).concat(fileRenameSuffix)) == true){
> >                               //"RENAME ON FTP SUCCEEDED"
> >                       }else{
> >                               //"RENAME ON FTP FAILED"
> >                       }
> >                       //------- Stop QnD (quick and dirty) FTP rename
> fix.-----------
> >
> >             returnClient(client);
> >         }
> >     }
> >
> >     protected void returnClient(SocketClient client) {
> >         if (client != null) {
> >             try {
> >                 getClientPool().returnClient(client);
> >             }
> >             catch (Exception e) {
> >                 log.error("Failed to return client to pool: " + e, e);
> >             }
> >         }
> >     }
> >
> > }
> > ===================================================
> >
> > ============ servicemix.xml file with rename suffix setup===========
> > <!-- Send files over FTP and after that rename with new suffix. -->
> >       <sm:activationSpec componentName="ftpSender"
> service="foo:ftpSender">
> >       <sm:component>
> >               <bean class="
> org.apache.servicemix.components.net.PostmanFTPSender">
> >                       <property name="fileRenameSuffix" value=".emm"/>
> >                       <property name="clientPool">
> >                               <bean id="ftpClientPool"
> > class="org.apache.servicemix.components.net.FTPClientPool">
> >                                       <property name="host"
> value="localhost"/>
> >                                       <property name="username"
> value="myuserid"/>
> >                                       <property name="password"
> value="mypassword"/>
> >                               </bean>
> >                               </property>
> >                       <property name="marshaler">
> >                               <bean class="
> org.apache.servicemix.components.util.BinaryFileMarshaler">
> >                                       <property name="fileName">
> >                                               <bean class="
> org.apache.servicemix.expression.JAXPXPathExpression">
> >                                               <constructor-arg
> > value="concat(substring($org.apache.servicemix.file.name, 0,
> > string-length($org.apache.servicemix.file.name) - 3), '.tmp')" />
> >                                                       </bean>
> >                                       </property>
> >                               </bean>
> >                       </property>
> >               </bean>
> >       </sm:component>
> >       </sm:activationSpec>
> >
> >
> > ===================================================
> >
> > Gert Vanthienen wrote:
> >
> >> L.S.,
> >>
> >> As far as I know, ServiceMix does not currently support this feature.
> >> Because I also need it for my own applications, I'm currently working
> on
> >> a patch to add this behavior to <ftp:sender />.  I won't have the time
> >> to do it this week, but I can probably do it next week.  Would that be
> >> soon enough for you?  Would you be willing to help me test the
> >> modifications?
> >>
> >> Regards,
> >>
> >> Gert
> >>
> >>
> >> johper wrote:
> >>
> >>> Hi,
> >>>
> >>> Doing FTP file transfer from polling directory. In the FTP target
> >>> directory
> >>> we have to use '.tmp' extension. After successfull transfer, that
> '.tmp'
> >>> file must be renamed. How can this be done with ServiceMix and/or
> >>> FTPSender?
> >>>
> >>> tia
> >>>
> >>>
> >>
> >>
> >
> >
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Architect, LogicBlaze (http://www.logicblaze.com/)
Blog: http://gnodet.blogspot.com/

Re: [implentation on an internal system host] FTP rename command

Posted by Gert Vanthienen <ge...@skynet.be>.
L.S.,

I added this rename behavior to servicemix-ftp.  You can now use an 
attribute uploadSuffix=".tmp" to get the desired the result.  The patch 
is attached to JIRA issue SM-889 [1].  If you want, I can also add the 
same modifications to the lightweight FTP component.  Isn't  there a way 
to share the message processing code between both components, so 
modifications become available to both variants without having to write 
the same code twice?

Regards,

Gert


[1] https://issues.apache.org/activemq/browse/SM-889

johper wrote:
> Hi Gert!
> Ofcourse I will test and try the patch, but for the moment I run the
> leightweight variant, not "servicemix-ftp"...
>
> I fixed the FTP rename issue with a few lines of Java-code:
>
> ========= Java Code for doing FTP rename after successfull FTP transere, see
> "quick and dirty" section ========
> /*
>  * Licensed to the Apache Software Foundation (ASF) under one or more
>  * contributor license agreements.  See the NOTICE file distributed with
>  * this work for additional information regarding copyright ownership.
>  * The ASF licenses this file to You under the Apache License, Version 2.0
>  * (the "License"); you may not use this file except in compliance with
>  * the License.  You may obtain a copy of the License at
>  *
>  *      http://www.apache.org/licenses/LICENSE-2.0
>  *
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
> package org.apache.servicemix.components.net;
>
> import java.io.IOException;
> import java.io.OutputStream;
>
> import javax.jbi.JBIException;
> import javax.jbi.messaging.MessageExchange;
> import javax.jbi.messaging.NormalizedMessage;
>
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> import org.apache.commons.net.SocketClient;
> import org.apache.commons.net.ftp.FTPClient;
> import org.apache.servicemix.components.util.DefaultFileMarshaler;
> import org.apache.servicemix.components.util.FileMarshaler;
> import org.apache.servicemix.components.util.OutBinding;
>
> /**
>  * A component which sends a message to a file using FTP via the
>  *  http://jakarta.apache.org/commons/net.html Jakarta Commons Net  library
>  *
>  * @version $Revision: 486715 $
>  */
> public class PostmanFTPSender extends OutBinding {
>     private static final Log log =
> LogFactory.getLog(PostmanFTPSender.class);
>
>     private FTPClientPool clientPool;
>     private FileMarshaler marshaler = new DefaultFileMarshaler();
>     private String uniqueFileName = "ServiceMix";
>     private boolean overwrite = false;
>     private String fileRenameSuffix = ".tmp";
>
>
>     // Properties
>    
> //-------------------------------------------------------------------------
>     public void setFileRenameSuffix(String suffix)
>     {
> 		fileRenameSuffix = suffix;
> 	}
>
> 	public String getFileRenameSuffix()
> 	{
> 		return fileRenameSuffix;
> 	}
>
>     public FTPClientPool getClientPool() {
>         return clientPool;
>     }
>
>     public void setClientPool(FTPClientPool clientPool) {
>         this.clientPool = clientPool;
>     }
>
>     public FileMarshaler getMarshaler() {
>         return marshaler;
>     }
>
>     public void setMarshaler(FileMarshaler marshaler) {
>         this.marshaler = marshaler;
>     }
>
>     public String getUniqueFileName() {
>         return uniqueFileName;
>     }
>
>     /**
>      * Sets the name used to make a unique name if no file name is available
> on the message.
>      *
>      * @param uniqueFileName the new value of the unique name to use for
> generating unique names
>      */
>     public void setUniqueFileName(String uniqueFileName) {
>         this.uniqueFileName = uniqueFileName;
>     }
>
>     public boolean isOverwrite() {
>         return overwrite;
>     }
>
>     public void setOverwrite(boolean overwrite) {
>         this.overwrite = overwrite;
>     }
>
>     // Implementation methods
>    
> //-------------------------------------------------------------------------
>     protected void init() throws JBIException {
>         if (clientPool == null) {
>             throw new IllegalArgumentException("You must initialise the
> clientPool property");
>         }
>         super.init();
>     }
>
>     protected void process(MessageExchange exchange, NormalizedMessage
> message) throws Exception {
>         FTPClient client = null;
>         OutputStream out = null;
>         String name = null;
>         try {
>             client = (FTPClient) getClientPool().borrowClient();
>
>             name = marshaler.getOutputName(exchange, message);
>             if (name == null) {
>                 if (uniqueFileName != null) {
>                     out = client.storeUniqueFileStream(uniqueFileName);
>                 }
>                 else {
>                     out = client.storeUniqueFileStream();
>                 }
>             }
>             else {
>                 out = client.storeFileStream(name);
>                 if (out == null) {
>                     // lets try overwrite the previous file?
>                     if (overwrite) {
>                         client.deleteFile(name);
>                     }
>                     out = client.storeFileStream(name);
>                 }
>             }
>             if (out == null) {
>                 throw new IOException("No output stream available for output
> name: "
>                 + name + ". Maybe the file already exists?");
>             }
>
>             marshaler.writeMessage(exchange, message, out, name);
>
>             done(exchange);
>
>         }
>         finally {
>             if (out != null) {
>                 try {
>                     out.close();
>                 }
>                 catch (IOException e) {
>                     log.error("Caught exception while closing stream on
> error: " + e, e);
>                 }
>             }
>             client.completePendingCommand();
>
> 			//------- Start QnD FTP (quick and dirty) rename fix.----------
> 			if(client.rename(name, name.substring(0, name.length() -
> 4).concat(fileRenameSuffix)) == true){
> 				//"RENAME ON FTP SUCCEEDED"
> 			}else{
> 				//"RENAME ON FTP FAILED"
> 			}
> 			//------- Stop QnD (quick and dirty) FTP rename fix.-----------
>
>             returnClient(client);
>         }
>     }
>
>     protected void returnClient(SocketClient client) {
>         if (client != null) {
>             try {
>                 getClientPool().returnClient(client);
>             }
>             catch (Exception e) {
>                 log.error("Failed to return client to pool: " + e, e);
>             }
>         }
>     }
>
> }
> ===================================================
>
> ============ servicemix.xml file with rename suffix setup===========
> <!-- Send files over FTP and after that rename with new suffix. -->
> 	<sm:activationSpec componentName="ftpSender" service="foo:ftpSender">
> 	<sm:component>
>   		<bean class="org.apache.servicemix.components.net.PostmanFTPSender">
>   			<property name="fileRenameSuffix" value=".emm"/>
>    			<property name="clientPool">
> 				<bean id="ftpClientPool"
> class="org.apache.servicemix.components.net.FTPClientPool">
> 	                       		<property name="host" value="localhost"/>
> 	                       		<property name="username" value="myuserid"/>
> 	                       		<property name="password" value="mypassword"/>
> 	       			</bean>
>        			</property>
>    			<property name="marshaler">
> 				<bean class="org.apache.servicemix.components.util.BinaryFileMarshaler">
> 					<property name="fileName">
> 			 			<bean class="org.apache.servicemix.expression.JAXPXPathExpression">
> 			   			<constructor-arg
> value="concat(substring($org.apache.servicemix.file.name, 0,
> string-length($org.apache.servicemix.file.name) - 3), '.tmp')" />
>                                			</bean> 
> 					</property>
> 				</bean>
> 			</property>  	            
>   		</bean>
> 	</sm:component>
> 	</sm:activationSpec>
>
>
> ===================================================
>
> Gert Vanthienen wrote:
>   
>> L.S.,
>>
>> As far as I know, ServiceMix does not currently support this feature.  
>> Because I also need it for my own applications, I'm currently working on 
>> a patch to add this behavior to <ftp:sender />.  I won't have the time 
>> to do it this week, but I can probably do it next week.  Would that be 
>> soon enough for you?  Would you be willing to help me test the 
>> modifications?
>>
>> Regards,
>>
>> Gert
>>
>>
>> johper wrote:
>>     
>>> Hi,
>>>
>>> Doing FTP file transfer from polling directory. In the FTP target
>>> directory
>>> we have to use '.tmp' extension. After successfull transfer, that '.tmp'
>>> file must be renamed. How can this be done with ServiceMix and/or
>>> FTPSender?
>>>
>>> tia
>>>   
>>>       
>>
>>     
>
>   


Re: [implentation on an internal system host] FTP rename command

Posted by johper <ka...@hotmail.com>.
Hi Gert!
Ofcourse I will test and try the patch, but for the moment I run the
leightweight variant, not "servicemix-ftp"...

I fixed the FTP rename issue with a few lines of Java-code:

========= Java Code for doing FTP rename after successfull FTP transere, see
"quick and dirty" section ========
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.servicemix.components.net;

import java.io.IOException;
import java.io.OutputStream;

import javax.jbi.JBIException;
import javax.jbi.messaging.MessageExchange;
import javax.jbi.messaging.NormalizedMessage;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.net.SocketClient;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.servicemix.components.util.DefaultFileMarshaler;
import org.apache.servicemix.components.util.FileMarshaler;
import org.apache.servicemix.components.util.OutBinding;

/**
 * A component which sends a message to a file using FTP via the
 *  http://jakarta.apache.org/commons/net.html Jakarta Commons Net  library
 *
 * @version $Revision: 486715 $
 */
public class PostmanFTPSender extends OutBinding {
    private static final Log log =
LogFactory.getLog(PostmanFTPSender.class);

    private FTPClientPool clientPool;
    private FileMarshaler marshaler = new DefaultFileMarshaler();
    private String uniqueFileName = "ServiceMix";
    private boolean overwrite = false;
    private String fileRenameSuffix = ".tmp";


    // Properties
   
//-------------------------------------------------------------------------
    public void setFileRenameSuffix(String suffix)
    {
		fileRenameSuffix = suffix;
	}

	public String getFileRenameSuffix()
	{
		return fileRenameSuffix;
	}

    public FTPClientPool getClientPool() {
        return clientPool;
    }

    public void setClientPool(FTPClientPool clientPool) {
        this.clientPool = clientPool;
    }

    public FileMarshaler getMarshaler() {
        return marshaler;
    }

    public void setMarshaler(FileMarshaler marshaler) {
        this.marshaler = marshaler;
    }

    public String getUniqueFileName() {
        return uniqueFileName;
    }

    /**
     * Sets the name used to make a unique name if no file name is available
on the message.
     *
     * @param uniqueFileName the new value of the unique name to use for
generating unique names
     */
    public void setUniqueFileName(String uniqueFileName) {
        this.uniqueFileName = uniqueFileName;
    }

    public boolean isOverwrite() {
        return overwrite;
    }

    public void setOverwrite(boolean overwrite) {
        this.overwrite = overwrite;
    }

    // Implementation methods
   
//-------------------------------------------------------------------------
    protected void init() throws JBIException {
        if (clientPool == null) {
            throw new IllegalArgumentException("You must initialise the
clientPool property");
        }
        super.init();
    }

    protected void process(MessageExchange exchange, NormalizedMessage
message) throws Exception {
        FTPClient client = null;
        OutputStream out = null;
        String name = null;
        try {
            client = (FTPClient) getClientPool().borrowClient();

            name = marshaler.getOutputName(exchange, message);
            if (name == null) {
                if (uniqueFileName != null) {
                    out = client.storeUniqueFileStream(uniqueFileName);
                }
                else {
                    out = client.storeUniqueFileStream();
                }
            }
            else {
                out = client.storeFileStream(name);
                if (out == null) {
                    // lets try overwrite the previous file?
                    if (overwrite) {
                        client.deleteFile(name);
                    }
                    out = client.storeFileStream(name);
                }
            }
            if (out == null) {
                throw new IOException("No output stream available for output
name: "
                + name + ". Maybe the file already exists?");
            }

            marshaler.writeMessage(exchange, message, out, name);

            done(exchange);

        }
        finally {
            if (out != null) {
                try {
                    out.close();
                }
                catch (IOException e) {
                    log.error("Caught exception while closing stream on
error: " + e, e);
                }
            }
            client.completePendingCommand();

			//------- Start QnD FTP (quick and dirty) rename fix.----------
			if(client.rename(name, name.substring(0, name.length() -
4).concat(fileRenameSuffix)) == true){
				//"RENAME ON FTP SUCCEEDED"
			}else{
				//"RENAME ON FTP FAILED"
			}
			//------- Stop QnD (quick and dirty) FTP rename fix.-----------

            returnClient(client);
        }
    }

    protected void returnClient(SocketClient client) {
        if (client != null) {
            try {
                getClientPool().returnClient(client);
            }
            catch (Exception e) {
                log.error("Failed to return client to pool: " + e, e);
            }
        }
    }

}
===================================================

============ servicemix.xml file with rename suffix setup===========
<!-- Send files over FTP and after that rename with new suffix. -->
	<sm:activationSpec componentName="ftpSender" service="foo:ftpSender">
	<sm:component>
  		<bean class="org.apache.servicemix.components.net.PostmanFTPSender">
  			<property name="fileRenameSuffix" value=".emm"/>
   			<property name="clientPool">
				<bean id="ftpClientPool"
class="org.apache.servicemix.components.net.FTPClientPool">
	                       		<property name="host" value="localhost"/>
	                       		<property name="username" value="myuserid"/>
	                       		<property name="password" value="mypassword"/>
	       			</bean>
       			</property>
   			<property name="marshaler">
				<bean class="org.apache.servicemix.components.util.BinaryFileMarshaler">
					<property name="fileName">
			 			<bean class="org.apache.servicemix.expression.JAXPXPathExpression">
			   			<constructor-arg
value="concat(substring($org.apache.servicemix.file.name, 0,
string-length($org.apache.servicemix.file.name) - 3), '.tmp')" />
                               			</bean> 
					</property>
				</bean>
			</property>  	            
  		</bean>
	</sm:component>
	</sm:activationSpec>


===================================================

Gert Vanthienen wrote:
> 
> L.S.,
> 
> As far as I know, ServiceMix does not currently support this feature.  
> Because I also need it for my own applications, I'm currently working on 
> a patch to add this behavior to <ftp:sender />.  I won't have the time 
> to do it this week, but I can probably do it next week.  Would that be 
> soon enough for you?  Would you be willing to help me test the 
> modifications?
> 
> Regards,
> 
> Gert
> 
> 
> johper wrote:
>> Hi,
>>
>> Doing FTP file transfer from polling directory. In the FTP target
>> directory
>> we have to use '.tmp' extension. After successfull transfer, that '.tmp'
>> file must be renamed. How can this be done with ServiceMix and/or
>> FTPSender?
>>
>> tia
>>   
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/FTP-rename-command-tf3402902s12049.html#a9490661
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: FTP rename command

Posted by Gert Vanthienen <ge...@skynet.be>.
L.S.,

As far as I know, ServiceMix does not currently support this feature.  
Because I also need it for my own applications, I'm currently working on 
a patch to add this behavior to <ftp:sender />.  I won't have the time 
to do it this week, but I can probably do it next week.  Would that be 
soon enough for you?  Would you be willing to help me test the 
modifications?

Regards,

Gert


johper wrote:
> Hi,
>
> Doing FTP file transfer from polling directory. In the FTP target directory
> we have to use '.tmp' extension. After successfull transfer, that '.tmp'
> file must be renamed. How can this be done with ServiceMix and/or FTPSender?
>
> tia
>