You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/03/08 12:15:48 UTC

svn commit: r751401 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/camel/component/file/ camel-core/src/main/java/org/apache/camel/component/file/strategy/ camel-core/src/main/java/org/apache/camel/lan...

Author: davsclaus
Date: Sun Mar  8 11:15:47 2009
New Revision: 751401

URL: http://svn.apache.org/viewvc?rev=751401&view=rev
Log:
CAMEL-1428: SFTP problem with XP. A quick fix to let Paddy test it.

Added:
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java   (contents, props changed)
      - copied, changed from r751229, camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveMultipleDirectoriesTest.java
Removed:
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveMultipleDirectoriesTest.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/AntPathMatcherGenericFileFilter.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileBinding.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileLockExclusiveReadLockStrategy.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileDeleteProcessStrategy.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameExclusiveReadLockStrategy.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameProcessStrategy.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileLanguage.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/util/FileUtil.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeFilesAndDelete.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitExpressionRenameStrategyTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitRenameStrategyTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginExpressionRenameStrategyTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginRenameStrategyTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByExpressionTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByNestedExpressionTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java
    camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
    camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
    camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFile.java
    camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
    camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
    camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileAbsoluteFolderRecursiveTest.java
    camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileRecursiveTest.java
    camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileToHiddenFolderRecursiveTest.java
    camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByExpressionTest.java
    camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByNestedExpressionTest.java
    camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
    camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java
    camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java Sun Mar  8 11:15:47 2009
@@ -48,6 +48,7 @@
     String FILE_BATCH_SIZE = "CamelFileBatchSize";
     String FILE_LOCAL_WORK_PATH = "CamelFileLocalWorkPath";
     String FILE_NAME = "CamelFileName";
+    String FILE_NAME_ONLY = "CamelFileNameOnly";
     String FILE_NAME_PRODUCED = "CamelFileNameProduced";
 
     String LOOP_INDEX = "CamelLoopIndex";

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/AntPathMatcherGenericFileFilter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/AntPathMatcherGenericFileFilter.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/AntPathMatcherGenericFileFilter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/AntPathMatcherGenericFileFilter.java Sun Mar  8 11:15:47 2009
@@ -52,7 +52,7 @@
             ObjectHelper.invokeMethod(excludesMethod, filter, collectionAsCommaDelimitedString(excludes));
 
             // invoke acceptPathName(String)
-            String path = file.getRelativeFileName();
+            String path = file.getRelativeFilePath();
             Boolean result = (Boolean) ObjectHelper.invokeMethod(acceptsMethod, filter, path);
             return result;
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileBinding.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileBinding.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileBinding.java Sun Mar  8 11:15:47 2009
@@ -29,12 +29,12 @@
     public Object getBody(GenericFile<File> file) {
         // as we use java.io.File itself as the body (not loading its content into a OutputStream etc.)
         // we just store a java.io.File handle to the actual file denoted by the
-        // file.getAbsoluteFileName. We must do this as the original file consumed can be renamed before
+        // file.getAbsoluteFilePath. We must do this as the original file consumed can be renamed before
         // being processed (preMove) and thus it points to an invalid file location.
-        // GenericFile#getAbsoluteFileName() is always up-to-date and thus we use it to create a file
+        // GenericFile#getAbsoluteFilePath() is always up-to-date and thus we use it to create a file
         // handle that is correct
-        if (body == null || !file.getAbsoluteFileName().equals(body.getAbsolutePath())) {
-            body = new File(file.getAbsoluteFileName());
+        if (body == null || !file.getAbsoluteFilePath().equals(body.getAbsolutePath())) {
+            body = new File(file.getAbsoluteFilePath());
         }
         return body;
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java Sun Mar  8 11:15:47 2009
@@ -17,7 +17,6 @@
 package org.apache.camel.component.file;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.List;
 
 import org.apache.camel.Processor;
@@ -103,12 +102,13 @@
         answer.setBinding(new FileBinding());
         answer.setFile(file);
         answer.setFileLength(file.length());
-        answer.setFileName(file.getName());
+        answer.setFileNameOnly(file.getName());
         answer.setAbsolute(file.isAbsolute());
-        answer.setAbsoluteFileName(file.getAbsolutePath());
+        answer.setAbsoluteFilePath(file.getAbsolutePath());
         answer.setLastModified(file.lastModified());
         if (file.isAbsolute()) {
-            answer.setRelativeFileName(null);
+            // use absolute path as relative
+            answer.setRelativeFilePath(file.getAbsolutePath());
         } else {
             File path;
             if (file.getPath().startsWith(endpointPath)) {
@@ -119,11 +119,15 @@
             }
 
             if (path.getParent() != null) {
-                answer.setRelativeFileName(path.getParent() + File.separator + file.getName());
+                answer.setRelativeFilePath(path.getParent() + File.separator + file.getName());
             } else {
-                answer.setRelativeFileName(path.getName());
+                answer.setRelativeFilePath(path.getName());
             }
         }
+
+        // name is the relative path as we want to preserve leading paths relative to the endpoint path
+        answer.setFileName(answer.getRelativeFilePath());
+        
         // use file as body as we have converters if needed as stream
         answer.setBody(file);
         return answer;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java Sun Mar  8 11:15:47 2009
@@ -17,8 +17,9 @@
 package org.apache.camel.component.file;
 
 import java.io.File;
-import java.io.IOException;
 import java.io.Serializable;
+import java.util.Stack;
+import java.util.Iterator;
 
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.ObjectHelper;
@@ -30,9 +31,10 @@
 public class GenericFile<T> implements Serializable {
 
     private String endpointPath;
-    private String absoluteFileName;
-    private String relativeFileName;
     private String fileName;
+    private String fileNameOnly;
+    private String relativeFilePath;
+    private String absoluteFilePath;
     private long fileLength;
     private long lastModified;
     private T file;
@@ -60,9 +62,10 @@
         }
         result.setEndpointPath(source.getEndpointPath());
         result.setAbsolute(source.isAbsolute());
-        result.setAbsoluteFileName(source.getAbsoluteFileName());
-        result.setRelativeFileName(source.getRelativeFileName());
+        result.setAbsoluteFilePath(source.getAbsoluteFilePath());
+        result.setRelativeFilePath(source.getRelativeFilePath());
         result.setFileName(source.getFileName());
+        result.setFileNameOnly(source.getFileNameOnly());
         result.setFileLength(source.getFileLength());
         result.setLastModified(source.getLastModified());
         result.setFile(source.getFile());
@@ -79,6 +82,38 @@
         return File.separator;
     }
 
+    public static String normalizePath(String path) {
+        return path;
+
+        // TODO: not needed
+/*        // only normalize path if it contains .. as we want to avoid: path/../sub/../sub2 as this can leads to trouble
+        if (path.indexOf("..") == -1) {
+            return path;
+        }
+
+        Stack<String> stack = new Stack<String>();
+        String[] parts = path.split(File.separator);
+        for (String part : parts) {
+            if (part.equals("..") && !stack.isEmpty()) {
+                // only pop if there is a previous path
+                stack.pop();
+            } else {
+                stack.push(part);
+            }
+        }
+
+        // build path based on stack
+        StringBuilder sb = new StringBuilder();
+        for (Iterator it = stack.iterator(); it.hasNext();) {
+            sb.append(it.next());
+            if (it.hasNext()) {
+                sb.append(File.separator);
+            }
+        }
+
+        return sb.toString();*/
+    }
+
     /**
      * Changes the name of this remote file. This method alters the absolute and
      * relative names as well.
@@ -87,35 +122,37 @@
      */
     public void changeFileName(String newName) {
         newName = needToNormalize() ? FileUtil.normalizePath(newName) : newName;
-
-        // is it relative or absolute
         boolean absolute = isAbsolutePath(newName);
         boolean nameChangeOnly = newName.indexOf(getFileSeparator()) == -1;
 
+        // use java.io.File to help us with computing name changes
         File file = new File(newName);
-        if (absolute) {
-            setAbsolute(true);
-            setFileName(file.getName());
-            setRelativeFileName(null);
-            setAbsoluteFileName(file.getAbsolutePath());
-        } else {
-            setAbsolute(false);
-            setFileName(file.getName());
 
-            // relative name is a bit more complex for relative files
-            if (nameChangeOnly) {
-                setRelativeFileName(changeNameOnly(getRelativeFileName(), file.getName()));
+        // store the file name only
+        setFileNameOnly(file.getName());
+        setFileName(file.getName());
+
+        // relative name is a bit more complex
+        if (nameChangeOnly) {
+            setRelativeFilePath(changeNameOnly(getRelativeFilePath(), file.getName()));
+            setFileName(changeNameOnly(getFileName(), file.getName()));
+        } else {
+            if (file.getParent() != null) {
+                setRelativeFilePath(file.getParent() + getFileSeparator() + file.getName());
             } else {
-                if (file.getParent() != null) {
-                    setRelativeFileName(file.getParent() + getFileSeparator() + file.getName());
-                } else {
-                    setRelativeFileName(file.getName());
-                }
+                setRelativeFilePath(file.getName());
             }
+        }
 
+        // absolute vs relative
+        if (absolute) {
+            setAbsolute(true);
+            setAbsoluteFilePath(file.getAbsolutePath());
+        } else {
+            setAbsolute(false);
             // construct a pseudo absolute filename that the file operations uses
-            setAbsoluteFileName(endpointPath + getFileSeparator() + getRelativeFileName());
-        } 
+            setAbsoluteFilePath(endpointPath + getFileSeparator() + getRelativeFilePath());
+        }
     }
 
     private String changeNameOnly(String path, String name) {
@@ -131,12 +168,13 @@
         return new File(path).isAbsolute();
     }
 
-    public String getRelativeFileName() {
-        return relativeFileName;
+    public String getRelativeFilePath() {
+        return relativeFilePath;
     }
 
-    public void setRelativeFileName(String relativeFileName) {
-        this.relativeFileName = needToNormalize() ? FileUtil.normalizePath(relativeFileName) : relativeFileName;
+    public void setRelativeFilePath(String relativeFilePath) {
+        String path = normalizePath(relativeFilePath);
+        this.relativeFilePath = needToNormalize() ? FileUtil.normalizePath(path) : path;
     }
 
     public String getFileName() {
@@ -181,11 +219,11 @@
 
     public String getParent() {
         if (isAbsolute()) {
-            String name = getAbsoluteFileName();
+            String name = getAbsoluteFilePath();
             File path = new File(name);
             return path.getParent();
         } else {
-            String name = getRelativeFileName();
+            String name = getRelativeFilePath();
             File path = new File(endpointPath, name);
             return path.getParent();
         }
@@ -202,12 +240,13 @@
         this.binding = binding;
     }
 
-    public void setAbsoluteFileName(String absoluteFileName) {
-        this.absoluteFileName = needToNormalize() ? FileUtil.normalizePath(absoluteFileName) : absoluteFileName;
+    public void setAbsoluteFilePath(String absoluteFilePath) {
+        String path = normalizePath(absoluteFilePath);
+        this.absoluteFilePath = needToNormalize() ? FileUtil.normalizePath(path) : path;
     }
 
-    public String getAbsoluteFileName() {
-        return absoluteFileName;
+    public String getAbsoluteFilePath() {
+        return absoluteFilePath;
     }
 
     public boolean isAbsolute() {
@@ -226,8 +265,16 @@
         this.endpointPath = needToNormalize() ? FileUtil.normalizePath(endpointPath) : endpointPath;
     }
 
+    public String getFileNameOnly() {
+        return fileNameOnly;
+    }
+
+    public void setFileNameOnly(String fileNameOnly) {
+        this.fileNameOnly = fileNameOnly;
+    }
+
     @Override
     public String toString() {
-        return "GenericFile[" + (absolute ? absoluteFileName : relativeFileName) + "]";
+        return "GenericFile[" + (absolute ? absoluteFilePath : relativeFilePath) + "]";
     }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java Sun Mar  8 11:15:47 2009
@@ -144,7 +144,7 @@
                 // preMoveNamePrefix/preMoveNamePostfix options
                 final GenericFile<T> target = exchange.getGenericFile();
                 // must use full name when downloading so we have the correct path
-                final String name = target.getAbsoluteFileName();
+                final String name = target.getAbsoluteFilePath();
 
                 // retrieve the file using the stream
                 if (log.isTraceEnabled()) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java Sun Mar  8 11:15:47 2009
@@ -383,19 +383,15 @@
     public void configureMessage(GenericFile<T> file, Message message) {
         message.setBody(file);
 
-        // compute the name that was written
-        String name = file.isAbsolute() ? file.getAbsoluteFileName() : file.getRelativeFileName();
+        // compute name to set on header that should be relative to starting directory
+        String name = file.isAbsolute() ? file.getAbsoluteFilePath() : file.getRelativeFilePath();
 
         // skip leading endpoint configured directory
         if (name.startsWith(getConfiguration().getDirectory())) {
-            name = ObjectHelper.after(name, getConfiguration().getDirectory());
-        }
-
-        if (name.startsWith(File.separator) || name.startsWith("/")) {
-            // skip trailing /
-            name = name.substring(1);
+            name = ObjectHelper.after(name, getConfiguration().getDirectory() + File.separator);
         }
 
+        // adjust filename
         message.setHeader(Exchange.FILE_NAME, name);
     }
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileExchange.java Sun Mar  8 11:15:47 2009
@@ -61,14 +61,18 @@
 
     protected void populateHeaders(GenericFile<T> file) {
         if (file != null) {
-            getIn().setHeader("CamelFileName", file.getFileName());
+            getIn().setHeader(Exchange.FILE_NAME_ONLY, file.getFileNameOnly());
+            getIn().setHeader(Exchange.FILE_NAME, file.getFileName());
             getIn().setHeader("CamelFileAbsolute", file.isAbsolute());
-            getIn().setHeader("CamelFileAbsolutePath", file.getAbsoluteFileName());
+            getIn().setHeader("CamelFileAbsolutePath", file.getAbsoluteFilePath());
+
             if (file.isAbsolute()) {
-                getIn().setHeader("CamelFilePath", file.getAbsoluteFileName());
+                getIn().setHeader("CamelFilePath", file.getAbsoluteFilePath());
             } else {
-                getIn().setHeader("CamelFilePath", file.getEndpointPath() + File.separator + file.getRelativeFileName());
+                getIn().setHeader("CamelFilePath", file.getEndpointPath() + File.separator + file.getRelativeFilePath());
             }
+
+            getIn().setHeader("CamelFileRelativePath", file.getRelativeFilePath());
             getIn().setHeader("CamelFileParent", file.getParent());
 
             if (file.getFileLength() > 0) {
@@ -85,8 +89,8 @@
     }
 
     public void setGenericFile(GenericFile<T> file) {
-        setIn(new GenericFileMessage<T>(file));
         this.file = file;
+        setIn(new GenericFileMessage<T>(file));
         populateHeaders(file);
     }
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileLockExclusiveReadLockStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileLockExclusiveReadLockStrategy.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileLockExclusiveReadLockStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/FileLockExclusiveReadLockStrategy.java Sun Mar  8 11:15:47 2009
@@ -42,7 +42,7 @@
     private long timeout;
 
     public boolean acquireExclusiveReadLock(GenericFileOperations<File> operations, GenericFile<File> file, Exchange exchange) throws Exception {
-        File target = new File(file.getAbsoluteFileName());
+        File target = new File(file.getAbsoluteFilePath());
 
         if (LOG.isTraceEnabled()) {
             LOG.trace("Waiting for exclusive read lock to file: " + target);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileDeleteProcessStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileDeleteProcessStrategy.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileDeleteProcessStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileDeleteProcessStrategy.java Sun Mar  8 11:15:47 2009
@@ -29,7 +29,7 @@
         // must invoke super
         super.commit(operations, endpoint, exchange, file);
 
-        boolean deleted = operations.deleteFile(file.getAbsoluteFileName());
+        boolean deleted = operations.deleteFile(file.getAbsoluteFilePath());
         if (!deleted) {
             throw new GenericFileOperationFailedException("Cannot delete file: " + file);
         }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameExclusiveReadLockStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameExclusiveReadLockStrategy.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameExclusiveReadLockStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameExclusiveReadLockStrategy.java Sun Mar  8 11:15:47 2009
@@ -60,13 +60,13 @@
                 }
             }
             
-            exclusive = operations.renameFile(file.getAbsoluteFileName(), newFile.getAbsoluteFileName());
+            exclusive = operations.renameFile(file.getAbsoluteFilePath(), newFile.getAbsoluteFilePath());
             if (exclusive) {
                 if (LOG.isTraceEnabled()) {
                     LOG.trace("Acquired exclusive read lock to file: " + file);
                 }
                 // rename it back so we can read it
-                operations.renameFile(newFile.getAbsoluteFileName(), file.getAbsoluteFileName());
+                operations.renameFile(newFile.getAbsoluteFilePath(), file.getAbsoluteFilePath());
             } else {
                 boolean interrupted = sleep();
                 if (interrupted) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameProcessStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameProcessStrategy.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameProcessStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/GenericFileRenameProcessStrategy.java Sun Mar  8 11:15:47 2009
@@ -62,7 +62,7 @@
     private GenericFile<T> renameFile(GenericFileOperations<T> operations, GenericFile<T> from, GenericFile<T> to) throws IOException {
         // deleting any existing files before renaming
         try {
-            operations.deleteFile(to.getAbsoluteFileName());
+            operations.deleteFile(to.getAbsoluteFilePath());
         } catch (GenericFileOperationFailedException e) {
             // ignore the file does not exists
         }
@@ -77,7 +77,7 @@
         if (log.isDebugEnabled()) {
             log.debug("Renaming file: " + from + " to: " + to);
         }
-        boolean renamed = operations.renameFile(from.getAbsoluteFileName(), to.getAbsoluteFileName());
+        boolean renamed = operations.renameFile(from.getAbsoluteFilePath(), to.getAbsoluteFilePath());
         if (!renamed) {
             throw new GenericFileOperationFailedException("Cannot rename file: " + from + " to: " + to);
         }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java Sun Mar  8 11:15:47 2009
@@ -43,7 +43,7 @@
     public boolean acquireExclusiveReadLock(GenericFileOperations<File> fileGenericFileOperations,
                                             GenericFile<File> file, Exchange exchange) throws Exception {
 
-        String lockFileName = file.getAbsoluteFileName() + FileComponent.DEFAULT_LOCK_FILE_POSTFIX;
+        String lockFileName = file.getAbsoluteFilePath() + FileComponent.DEFAULT_LOCK_FILE_POSTFIX;
         if (LOG.isTraceEnabled()) {
             LOG.trace("Locking the file: " + file + " using the lock file name: " + lockFileName);
         }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java Sun Mar  8 11:15:47 2009
@@ -26,6 +26,7 @@
 import org.apache.camel.impl.ExpressionAdapter;
 import org.apache.camel.language.IllegalSyntaxException;
 import org.apache.camel.language.constant.ConstantLanguage;
+import org.apache.camel.util.FileUtil;
 
 /**
  * A helper class for working with <a href="http://camel.apache.org/expression.html">expressions</a> based
@@ -44,7 +45,7 @@
     public static Expression fileNameExpression() {
         return new ExpressionAdapter() {
             public Object evaluate(Exchange exchange) {
-                return exchange.getIn().getHeader("CamelFileName", String.class);
+                return exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
             }
 
             @Override
@@ -54,10 +55,23 @@
         };
     }
 
+    public static Expression fileOnlyNameExpression() {
+        return new ExpressionAdapter() {
+            public Object evaluate(Exchange exchange) {
+                return exchange.getIn().getHeader(Exchange.FILE_NAME_ONLY, String.class);
+            }
+
+            @Override
+            public String toString() {
+                return "file:onlyname";
+            }
+        };
+    }
+
     public static Expression fileNameNoExtensionExpression() {
         return new ExpressionAdapter() {
             public Object evaluate(Exchange exchange) {
-                String name = exchange.getIn().getHeader("CamelFileName", String.class);
+                String name = exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
                 if (name != null) {
                     if (name.lastIndexOf(".") != -1) {
                         return name.substring(0, name.lastIndexOf('.'));
@@ -77,10 +91,33 @@
         };
     }
 
-    public static Expression fileNameExtensionExpression() {
+    public static Expression fileOnlyNameNoExtensionExpression() {
+        return new ExpressionAdapter() {
+            public Object evaluate(Exchange exchange) {
+                String name = exchange.getIn().getHeader(Exchange.FILE_NAME_ONLY, String.class);
+                if (name != null) {
+                    if (name.lastIndexOf(".") != -1) {
+                        return name.substring(0, name.lastIndexOf('.'));
+                    } else {
+                        // name does not have extension
+                        return name;
+                    }
+                } else {
+                    return null;
+                }
+            }
+
+            @Override
+            public String toString() {
+                return "file:onlyname.noext";
+            }
+        };
+    }
+
+    public static Expression fileExtensionExpression() {
         return new ExpressionAdapter() {
             public Object evaluate(Exchange exchange) {
-                String name = exchange.getIn().getHeader("CamelFileName", String.class);
+                String name = exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
                 if (name != null) {
                     return name.substring(name.lastIndexOf('.') + 1);
                 } else {
@@ -90,7 +127,7 @@
 
             @Override
             public String toString() {
-                return "file:name.ext";
+                return "file:ext";
             }
         };
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileLanguage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileLanguage.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileLanguage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileLanguage.java Sun Mar  8 11:15:47 2009
@@ -25,21 +25,28 @@
  *
  * Examples of supported file expressions are:
  * <ul>
- * <li><tt>file:name</tt> to access the file name</li>
- * <li><tt>file:name.noext</tt> to access the file name with no extension</li>
- * <li><tt>file:name.ext</tt> to access the file name extension</li>
- * <li><tt>file:parent</tt> to access the parent file name</li>
- * <li><tt>file:path</tt> to access the file path name</li>
- * <li><tt>file:absolute</tt> is the file regarded as absolute or relative</li>
- * <li><tt>file:absolute.path</tt> to access the absolute file path name</li>
- * <li><tt>file:length</tt> to access the file length as a Long type</li>
- * <li><tt>file:modified</tt> to access the file last modified as a Date type</li>
- * <li><tt>date:&lt;command&gt;:&lt;pattern&gt;</tt> for date formatting using the {@link java.text.SimpleDateFormat} patterns.
+ *   <li><tt>file:name</tt> to access the file name (is relative, see note below))</li>
+ *   <li><tt>file:name.noext</tt> to access the file name with no extension</li>
+ *   <li><tt>file:ext</tt> to access the file extension</li>
+ *   <li><tt>file:onlyname</tt> to access the file name (no paths)</li>
+ *   <li><tt>file:onlyname.noext</tt> to access the file name (no paths) with no extension </li>
+ *   <li><tt>file:parent</tt> to access the parent file name</li>
+ *   <li><tt>file:path</tt> to access the file path name</li>
+ *   <li><tt>file:absolute</tt> is the file regarded as absolute or relative</li>
+ *   <li><tt>file:absolute.path</tt> to access the absolute file path name</li>
+ *   <li><tt>file:length</tt> to access the file length as a Long type</li>
+ *   <li><tt>file:modified</tt> to access the file last modified as a Date type</li>
+ *   <li><tt>date:&lt;command&gt;:&lt;pattern&gt;</tt> for date formatting using the {@link java.text.SimpleDateFormat} patterns.
  *     Additional Supported commands are: <tt>file</tt> for the last modified timestamp of the file.
  *     All the commands from {@link SimpleLanguage} is also avaiable.
- * </li>
+ *   </li>
  * </ul>
- * All the simple expression is also available so you can eg use <tt>${in.header.foo}</tt> to access the foo header.
+ * The <b>relative</b> file is the filename with the starting directory clipped, as opposed to <b>path</b> that will
+ * return the full path including the starting directory.
+ * <br/>
+ * The <b>only</b> file is the filename only with all paths clipped.
+ * <br/>
+  * All the simple expression is also available so you can eg use <tt>${in.header.foo}</tt> to access the foo header.
  *
  * @see org.apache.camel.language.simple.SimpleLanguage
  * @see org.apache.camel.language.bean.BeanLanguage
@@ -58,10 +65,14 @@
         if (remainder != null) {
             if (ObjectHelper.equal(remainder, "name")) {
                 return FileExpressionBuilder.fileNameExpression();
-            } else if (ObjectHelper.equal(remainder, "name.ext")) {
-                return FileExpressionBuilder.fileNameExtensionExpression();
             } else if (ObjectHelper.equal(remainder, "name.noext")) {
                 return FileExpressionBuilder.fileNameNoExtensionExpression();
+            } else if (ObjectHelper.equal(remainder, "onlyname")) {
+                return FileExpressionBuilder.fileOnlyNameExpression();
+            } else if (ObjectHelper.equal(remainder, "onlyname.noext")) {
+                return FileExpressionBuilder.fileOnlyNameNoExtensionExpression();
+            } else if (ObjectHelper.equal(remainder, "ext")) {
+                return FileExpressionBuilder.fileExtensionExpression();
             } else if (ObjectHelper.equal(remainder, "parent")) {
                 return FileExpressionBuilder.fileParentExpression();
             } else if (ObjectHelper.equal(remainder, "path")) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/FileUtil.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/FileUtil.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/FileUtil.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/FileUtil.java Sun Mar  8 11:15:47 2009
@@ -309,10 +309,27 @@
     }
 
     public static String stripLeadingSeparator(String name) {
+        if (name == null) {
+            return null;
+        }
         if (name.startsWith("/") || name.startsWith(File.separator)) {
             return name.substring(1);
         }
         return name;
     }
 
+    public static String stripPath(String name) {
+        if (name == null) {
+            return null;
+        }
+        int pos = name.lastIndexOf("/");
+        if (pos == -1) {
+            pos = name.lastIndexOf(File.separator);
+        }
+        if (pos != -1) {
+            return name.substring(pos + 1);
+        }
+        return name;
+    }
+
 }

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java Sun Mar  8 11:15:47 2009
@@ -21,10 +21,8 @@
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
-import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.ResolveEndpointFailedException;
-import org.apache.camel.impl.DefaultMessage;
 
 /**
  * @version $Revision$
@@ -40,17 +38,17 @@
     };
 
     public void testUriConfigurations() throws Exception {
-        assertFileEndpoint("file://target/foo/bar", EXPECT_PATH);
-        assertFileEndpoint("file://target/foo/bar?delete=true", EXPECT_PATH);
-        assertFileEndpoint("file:target/foo/bar?delete=true", EXPECT_PATH);
-        assertFileEndpoint("file:target/foo/bar", EXPECT_PATH);
-        assertFileEndpoint("file://target/foo/bar/", EXPECT_PATH);
-        assertFileEndpoint("file://target/foo/bar/?delete=true", EXPECT_PATH);
-        assertFileEndpoint("file:target/foo/bar/?delete=true", EXPECT_PATH);
-        assertFileEndpoint("file:target/foo/bar/", EXPECT_PATH);
-        assertFileEndpoint("file:/target/foo/bar/", File.separator + EXPECT_PATH);
-        assertFileEndpoint("file:/", File.separator);
-        assertFileEndpoint("file:///", File.separator);
+        assertFileEndpoint("file://target/foo/bar", EXPECT_PATH, false);
+        assertFileEndpoint("file://target/foo/bar?delete=true", EXPECT_PATH, false);
+        assertFileEndpoint("file:target/foo/bar?delete=true", EXPECT_PATH, false);
+        assertFileEndpoint("file:target/foo/bar", EXPECT_PATH, false);
+        assertFileEndpoint("file://target/foo/bar/", EXPECT_PATH, false);
+        assertFileEndpoint("file://target/foo/bar/?delete=true", EXPECT_PATH, false);
+        assertFileEndpoint("file:target/foo/bar/?delete=true", EXPECT_PATH, false);
+        assertFileEndpoint("file:target/foo/bar/", EXPECT_PATH, false);
+        assertFileEndpoint("file:/target/foo/bar/", File.separator + EXPECT_PATH + File.separator + EXPECT_FILE, true);
+        assertFileEndpoint("file:/", File.separator, true);
+        assertFileEndpoint("file:///", File.separator, true);
     }
 
     public void testConsumerConfigurations() throws Exception {
@@ -76,19 +74,20 @@
         return endpoint.createConsumer(DUMMY_PROCESSOR);
     }
 
-    private void assertFileEndpoint(String endpointUri, String expectedPath) throws IOException {
+    private void assertFileEndpoint(String endpointUri, String expectedPath, boolean absolute) throws IOException {
         FileEndpoint endpoint = resolveMandatoryEndpoint(endpointUri, FileEndpoint.class);
         assertNotNull("Could not find endpoint: " + endpointUri, endpoint);
 
-        File file = endpoint.getFile();
-        String path = file.getPath();
-        assertDirectoryEquals("For uri: " + endpointUri + " the file is not equal", expectedPath, path);
-
-        file = new File(expectedPath + (expectedPath.endsWith(File.separator) ? "" : File.separator) + EXPECT_FILE);
-        GenericFile<File> consumedFile = FileConsumer.asGenericFile(endpoint.getFile().getPath(), file);
-
-        Message message = new DefaultMessage();
-        endpoint.configureMessage(consumedFile, message);
-        assertEquals(EXPECT_FILE, message.getHeader(Exchange.FILE_NAME));
+        // TODO: absolute also
+        if (!absolute) {
+            File file = endpoint.getFile();
+            String path = file.getPath();
+            assertDirectoryEquals("For uri: " + endpointUri + " the file is not equal", expectedPath, path);
+
+            file = new File(expectedPath + (expectedPath.endsWith(File.separator) ? "" : File.separator) + EXPECT_FILE);
+            GenericFile<File> consumedFile = FileConsumer.asGenericFile(endpoint.getFile().getPath(), file);
+
+            assertEquals(EXPECT_FILE, consumedFile.getRelativeFilePath());
+        }
     }
 }

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeFilesAndDelete.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeFilesAndDelete.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeFilesAndDelete.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeFilesAndDelete.java Sun Mar  8 11:15:47 2009
@@ -48,14 +48,13 @@
 
         // file should not exists
         assertFalse("File should been deleted", new File("target/files/report.txt").getAbsoluteFile().exists());
-        assertFalse("File should been deleted", new File("target/files/.camel/report.txt").getAbsoluteFile().exists());
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from("file://target/files/?recursive=false&delete=true").to("mock:result");
+                from("file://target/files/?fileName=report.txt&delete=true").to("mock:result");
             }
         };
     }

Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java (from r751229, camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveMultipleDirectoriesTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveMultipleDirectoriesTest.java&r1=751229&r2=751401&rev=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveMultipleDirectoriesTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java Sun Mar  8 11:15:47 2009
@@ -24,10 +24,10 @@
 /**
  * Unit test for consuming multiple directories.
  */
-public class FileConsumeMoveMultipleDirectoriesTest extends ContextTestSupport {
+public class FileConsumeMoveRelativeNameTest extends ContextTestSupport {
 
     private String fileUrl = "file://target/multidir/?recursive=true&initialDelay=2000&delay=5000"
-            + "&exclude=.*old&move=done/${file:name}.old";
+            + "&move=.done/${file:name}.old";
 
     @Override
     protected void setUp() throws Exception {
@@ -42,11 +42,12 @@
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceivedInAnyOrder("Bye World", "Hello World", "Godday World");
 
-        mock.expectedFileExists("target/multidir/done/bye.txt.old");
-        mock.expectedFileExists("target/multidir/done/sub/hello.txt.old");
-        mock.expectedFileExists("target/multidir/done/sub/sub2/godday.txt.old");
+        mock.expectedFileExists("target/multidir/.done/bye.txt.old");
+        mock.expectedFileExists("target/multidir/.done/sub/hello.txt.old");
+        mock.expectedFileExists("target/multidir/.done/sub/sub2/godday.txt.old");
 
         assertMockEndpointsSatisfied();
+
     }
 
     protected RouteBuilder createRouteBuilder() throws Exception {

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitExpressionRenameStrategyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitExpressionRenameStrategyTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitExpressionRenameStrategyTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitExpressionRenameStrategyTest.java Sun Mar  8 11:15:47 2009
@@ -67,7 +67,7 @@
                         .process(new Processor() {
                             public void process(Exchange exchange) throws Exception {
                                 GenericFileExchange<File> fe = (GenericFileExchange<File>) exchange;
-                                assertTrue(fe.getGenericFile().getRelativeFileName().indexOf("inprogress") > -1);
+                                assertTrue(fe.getGenericFile().getRelativeFilePath().indexOf("inprogress") > -1);
                             }
                         })
                         .to("mock:report");

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitRenameStrategyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitRenameStrategyTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitRenameStrategyTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginAndCommitRenameStrategyTest.java Sun Mar  8 11:15:47 2009
@@ -73,11 +73,11 @@
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from("file://target/reports?preMove=../inprogress/${file:name}&move=../done/${file:name}&consumer.delay=5000")
+                from("file://target/reports?preMove=../inprogress/${file:name}&move=../done/${file:name}&delay=5000")
                         .process(new Processor() {
                             public void process(Exchange exchange) throws Exception {
                                 GenericFileExchange<File> fe = (GenericFileExchange<File>) exchange;
-                                assertTrue(fe.getGenericFile().getRelativeFileName().indexOf("inprogress") > -1);
+                                assertTrue(fe.getGenericFile().getRelativeFilePath().indexOf("inprogress") > -1);
                             }
                         })
                         .to("mock:report");

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginExpressionRenameStrategyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginExpressionRenameStrategyTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginExpressionRenameStrategyTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginExpressionRenameStrategyTest.java Sun Mar  8 11:15:47 2009
@@ -76,7 +76,7 @@
                         .process(new Processor() {
                             public void process(Exchange exchange) throws Exception {
                                 GenericFileExchange<File> fe = (GenericFileExchange<File>) exchange;
-                                assertTrue(fe.getGenericFile().getRelativeFileName().indexOf("inprogress") > -1);
+                                assertTrue(fe.getGenericFile().getRelativeFilePath().indexOf("inprogress") > -1);
                             }
                         })
                         .to("mock:report");

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginRenameStrategyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginRenameStrategyTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginRenameStrategyTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerBeginRenameStrategyTest.java Sun Mar  8 11:15:47 2009
@@ -74,7 +74,7 @@
                         .process(new Processor() {
                             public void process(Exchange exchange) throws Exception {
                                 GenericFileExchange<File> fe = (GenericFileExchange<File>) exchange;
-                                assertTrue(fe.getGenericFile().getRelativeFileName().indexOf("inprogress") > -1);
+                                assertTrue(fe.getGenericFile().getRelativeFilePath().indexOf("inprogress") > -1);
                             }
                         })
                         .to("mock:report");

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByExpressionTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByExpressionTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByExpressionTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByExpressionTest.java Sun Mar  8 11:15:47 2009
@@ -56,7 +56,7 @@
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(fileUrl + "a/?sortBy=file:name.ext").to("mock:result");
+                from(fileUrl + "a/?sortBy=file:ext").to("mock:result");
             }
         });
         context.start();
@@ -73,7 +73,7 @@
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(fileUrl + "b/?sortBy=reverse:file:name.ext").to("mock:reverse");
+                from(fileUrl + "b/?sortBy=reverse:file:ext").to("mock:reverse");
             }
         });
         context.start();

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByNestedExpressionTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByNestedExpressionTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByNestedExpressionTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileSortByNestedExpressionTest.java Sun Mar  8 11:15:47 2009
@@ -59,7 +59,7 @@
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(fileUrl + "a/?sortBy=file:name.ext;file:name").to("mock:result");
+                from(fileUrl + "a/?sortBy=file:ext;file:name").to("mock:result");
             }
         });
         context.start();
@@ -76,7 +76,7 @@
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(fileUrl + "b/?sortBy=file:name.ext;reverse:file:name").to("mock:reverse");
+                from(fileUrl + "b/?sortBy=file:ext;reverse:file:name").to("mock:reverse");
             }
         });
         context.start();

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java Sun Mar  8 11:15:47 2009
@@ -25,6 +25,7 @@
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.LanguageTestSupport;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.component.file.FileConsumer;
 import org.apache.camel.component.file.FileEndpoint;
 import org.apache.camel.component.file.GenericFile;
@@ -60,9 +61,11 @@
     }
 
     public void testFile() throws Exception {
-        assertExpression("${file:name}", file.getName());
-        assertExpression("${file:name.ext}", "txt");
-        assertExpression("${file:name.noext}", "hello");
+        assertExpression("${file:ext}", "txt");
+        assertExpression("${file:name}", "test" + File.separator + file.getName());
+        assertExpression("${file:name.noext}", "test" + File.separator + "hello");
+        assertExpression("${file:onlyname}", file.getName());
+        assertExpression("${file:onlyname.noext}", "hello");
         assertExpression("${file:parent}", file.getParent());
         assertExpression("${file:path}", file.getPath());
         assertExpression("${file:absolute}", file.isAbsolute());
@@ -93,11 +96,13 @@
     }
 
     public void testSimpleAndFile() throws Exception {
-        assertExpression("backup-${in.header.foo}-${file:name.noext}.bak", "backup-abc-hello.bak");
+        assertExpression("backup-${in.header.foo}-${file:name.noext}.bak", "backup-abc-test/hello.bak");
+        assertExpression("backup-${in.header.foo}-${file:onlyname.noext}.bak", "backup-abc-hello.bak");
     }
 
     public void testSimpleAndFileAndBean() throws Exception {
-        assertExpression("backup-${in.header.foo}-${bean:generator}-${file:name.noext}.bak", "backup-abc-generatorbybean-hello.bak");
+        assertExpression("backup-${in.header.foo}-${bean:generator}-${file:name.noext}.bak", "backup-abc-generatorbybean-test/hello.bak");
+        assertExpression("backup-${in.header.foo}-${bean:generator}-${file:onlyname.noext}.bak", "backup-abc-generatorbybean-hello.bak");
     }
 
     public void testBean() throws Exception {
@@ -108,10 +113,10 @@
     public Exchange createExchange() {
         // create the file
         String uri = "file://target/filelanguage";
-        template.sendBodyAndHeader(uri, "Hello World", Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(uri, "Hello World", Exchange.FILE_NAME, "test/hello.txt");
 
         // get the file handle
-        file = new File("target/filelanguage/hello.txt");
+        file = new File("target/filelanguage/test/hello.txt");
         GenericFile<File> gf = FileConsumer.asGenericFile("target/filelanguage", file);
 
         FileEndpoint endpoint = getMandatoryEndpoint(uri, FileEndpoint.class);

Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java Sun Mar  8 11:15:47 2009
@@ -100,6 +100,7 @@
         answer.setEndpointPath(endpointPath);
         answer.setFile(file);
         answer.setFileName(file.getName());
+        answer.setFileNameOnly(file.getName());
         answer.setFileLength(file.getSize());
         if (file.getTimestamp() != null) {
             answer.setLastModified(file.getTimestamp().getTimeInMillis());
@@ -111,7 +112,7 @@
 
         // create a pseudo absolute name
         String absoluteFileName = (ObjectHelper.isNotEmpty(directory) ? directory + "/" : "") + file.getName();
-        answer.setAbsoluteFileName(absoluteFileName);
+        answer.setAbsoluteFilePath(absoluteFileName);
 
         // the relative filename, skip the leading endpoint configured path
         String relativePath = ObjectHelper.after(absoluteFileName, endpointPath);
@@ -119,7 +120,7 @@
             // skip trailing /
             relativePath = relativePath.substring(1);
         }
-        answer.setRelativeFileName(relativePath);
+        answer.setRelativeFilePath(relativePath);
 
         return answer;
     }

Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java Sun Mar  8 11:15:47 2009
@@ -119,9 +119,6 @@
     }
 
     public boolean deleteFile(FTPClient client, String name) throws GenericFileOperationFailedException {
-        // for FTP we can not use leading / for refering to files
-        name = FileUtil.stripLeadingSeparator(name);
-
         if (LOG.isDebugEnabled()) {
             LOG.debug("Deleteing file: " + name);
         }
@@ -133,10 +130,6 @@
     }
 
     public boolean renameFile(String from, String to) throws GenericFileOperationFailedException {
-        // for FTP we can not use leading / for refering to files
-        from = FileUtil.stripLeadingSeparator(from);
-        to = FileUtil.stripLeadingSeparator(to);
-
         if (LOG.isDebugEnabled()) {
             LOG.debug("Renaming file: " + from + " to: " + to);
         }
@@ -148,9 +141,6 @@
     }
 
     public boolean buildDirectory(String directory, boolean absolute) throws GenericFileOperationFailedException {
-        // for FTP we can not use leading / for refering to files
-        directory = FileUtil.stripLeadingSeparator(directory);
-
         if (LOG.isTraceEnabled()) {
             LOG.trace("Building directory: " + directory);
         }
@@ -214,7 +204,7 @@
         OutputStream os;
         try {
             // use relative filename in local work directory
-            String relativeName = exchange.getGenericFile().getRelativeFileName();
+            String relativeName = exchange.getGenericFile().getRelativeFilePath();
             
             temp = new File(local, relativeName + ".inprogress");
             local = new File(local, relativeName);

Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFile.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFile.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFile.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFile.java Sun Mar  8 11:15:47 2009
@@ -48,8 +48,8 @@
     public RemoteFile<T> copyFrom(RemoteFile<T> source) {
         RemoteFile<T> result = (RemoteFile<T>) source.clone();
         result.setAbsolute(source.isAbsolute());
-        result.setAbsoluteFileName(source.getAbsoluteFileName());
-        result.setRelativeFileName(source.getRelativeFileName());
+        result.setAbsoluteFilePath(source.getAbsoluteFilePath());
+        result.setRelativeFilePath(source.getRelativeFilePath());
         result.setFileName(source.getFileName());
         result.setFileLength(source.getFileLength());
         result.setLastModified(source.getLastModified());

Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java Sun Mar  8 11:15:47 2009
@@ -104,6 +104,7 @@
         answer.setEndpointPath(endpointPath);
         answer.setFile(file);
         answer.setFileName(file.getFilename());
+        answer.setFileNameOnly(file.getFilename());
         answer.setFileLength(file.getAttrs().getSize());
         answer.setLastModified(file.getAttrs().getMTime() * 1000L);
         answer.setHostname(((RemoteFileConfiguration) endpoint.getConfiguration()).getHost());
@@ -113,7 +114,7 @@
 
         // create a pseudo absolute name
         String absoluteFileName = (ObjectHelper.isNotEmpty(directory) ? directory + "/" : "") + file.getFilename();
-        answer.setAbsoluteFileName(absoluteFileName);
+        answer.setAbsoluteFilePath(absoluteFileName);
 
         // the relative filename, skip the leading endpoint configured path
         String relativePath = ObjectHelper.after(absoluteFileName, endpointPath);
@@ -121,7 +122,7 @@
             // skip trailing /
             relativePath = relativePath.substring(1);
         }
-        answer.setRelativeFileName(relativePath);
+        answer.setRelativeFilePath(relativePath);
 
         return answer;
     }

Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java Sun Mar  8 11:15:47 2009
@@ -145,9 +145,6 @@
     }
 
     public boolean deleteFile(String name) throws GenericFileOperationFailedException {
-        // for FTP we can not use leading / for refering to files
-        name = FileUtil.stripLeadingSeparator(name);
-
         if (LOG.isDebugEnabled()) {
             LOG.debug("Deleteing file: " + name);
         }
@@ -160,10 +157,6 @@
     }
 
     public boolean renameFile(String from, String to) throws GenericFileOperationFailedException {
-        // for FTP we can not use leading / for refering to files
-        from = FileUtil.stripLeadingSeparator(from);
-        to = FileUtil.stripLeadingSeparator(to);
-
         if (LOG.isDebugEnabled()) {
             LOG.debug("Renaming file: " + from + " to: " + to);
         }
@@ -176,9 +169,6 @@
     }
 
     public boolean buildDirectory(String directory, boolean absolute) throws GenericFileOperationFailedException {
-        // for FTP we can not use leading / for refering to files
-        directory = FileUtil.stripLeadingSeparator(directory);
-
         // ignore absolute as all dirs are relative with FTP
         boolean success = false;
 
@@ -312,7 +302,7 @@
         OutputStream os;
         try {
             // use relative filename in local work directory
-            String relativeName = exchange.getGenericFile().getRelativeFileName();
+            String relativeName = exchange.getGenericFile().getRelativeFilePath();
 
             temp = new File(local, relativeName + ".inprogress");
             local = new File(local, relativeName);

Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileAbsoluteFolderRecursiveTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileAbsoluteFolderRecursiveTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileAbsoluteFolderRecursiveTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileAbsoluteFolderRecursiveTest.java Sun Mar  8 11:15:47 2009
@@ -26,8 +26,8 @@
 public class FromFtpMoveFileAbsoluteFolderRecursiveTest extends FtpServerTestSupport {
 
     private String getFtpUrl() {
-        return "ftp://admin@localhost:" + getPort() + "/movefile?password=admin&recursive=true&binary=false&exclude=.*old"
-                + "&move=/done/${file:name}.old&initialDelay=2500&delay=5000";
+        return "ftp://admin@localhost:" + getPort() + "/movefile?password=admin&recursive=true&binary=false"
+                + "&move=/.done/${file:name}.old&initialDelay=2500&delay=5000";
     }
 
     @Override
@@ -46,9 +46,9 @@
     public void testPollFileAndShouldBeMoved() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceivedInAnyOrder("Hello", "Bye", "Goodday");
-        mock.expectedFileExists(FTP_ROOT_DIR + "done/hello.txt.old");
-        mock.expectedFileExists(FTP_ROOT_DIR + "done/bye/bye.txt.old");
-        mock.expectedFileExists(FTP_ROOT_DIR + "done/goodday/goodday.txt.old");
+        mock.expectedFileExists(FTP_ROOT_DIR + ".done/hello.txt.old");
+        mock.expectedFileExists(FTP_ROOT_DIR + ".done/bye/bye.txt.old");
+        mock.expectedFileExists(FTP_ROOT_DIR + ".done/goodday/goodday.txt.old");
 
         mock.assertIsSatisfied();
     }

Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileRecursiveTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileRecursiveTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileRecursiveTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileRecursiveTest.java Sun Mar  8 11:15:47 2009
@@ -26,8 +26,8 @@
 public class FromFtpMoveFileRecursiveTest extends FtpServerTestSupport {
 
     private String getFtpUrl() {
-        return "ftp://admin@localhost:" + getPort() + "/movefile?password=admin&recursive=true&binary=false&exclude=.*old"
-                + "&move=done/${file:name}.old&initialDelay=2500&delay=5000";
+        return "ftp://admin@localhost:" + getPort() + "/movefile?password=admin&recursive=true&binary=false"
+                + "&move=.done/${file:name}.old&initialDelay=2500&delay=5000";
     }
 
     @Override
@@ -46,9 +46,9 @@
     public void testPollFileAndShouldBeMoved() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceivedInAnyOrder("Hello", "Bye", "Goodday");
-        mock.expectedFileExists(FTP_ROOT_DIR + "movefile/done/hello.txt.old");
-        mock.expectedFileExists(FTP_ROOT_DIR + "movefile/done/bye/bye.txt.old");
-        mock.expectedFileExists(FTP_ROOT_DIR + "movefile/done/goodday/goodday.txt.old");
+        mock.expectedFileExists(FTP_ROOT_DIR + "movefile/.done/hello.txt.old");
+        mock.expectedFileExists(FTP_ROOT_DIR + "movefile/.done/bye/bye.txt.old");
+        mock.expectedFileExists(FTP_ROOT_DIR + "movefile/.done/goodday/goodday.txt.old");
 
         mock.assertIsSatisfied();
     }

Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileToHiddenFolderRecursiveTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileToHiddenFolderRecursiveTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileToHiddenFolderRecursiveTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpMoveFileToHiddenFolderRecursiveTest.java Sun Mar  8 11:15:47 2009
@@ -27,7 +27,7 @@
 
     private String getFtpUrl() {
         return "ftp://admin@localhost:" + getPort() + "?password=admin&recursive=true&binary=false"
-                + "&move=.done/${file:name}&initialDelay=3000&delay=5000";
+                + "&move=${file:parent}/.done/${file:onlyname}&initialDelay=3000&delay=5000";
     }
 
     @Override
@@ -47,8 +47,8 @@
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceivedInAnyOrder("Hello", "Bye", "Goodday");
         mock.expectedFileExists(FTP_ROOT_DIR + ".done/hello.txt");
-        mock.expectedFileExists(FTP_ROOT_DIR + ".done/bye/bye.txt");
-        mock.expectedFileExists(FTP_ROOT_DIR + ".done/goodday/goodday.txt");
+        mock.expectedFileExists(FTP_ROOT_DIR + "bye/.done/bye.txt");
+        mock.expectedFileExists(FTP_ROOT_DIR + "goodday/.done/goodday.txt");
 
         mock.assertIsSatisfied();
     }

Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByExpressionTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByExpressionTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByExpressionTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByExpressionTest.java Sun Mar  8 11:15:47 2009
@@ -43,7 +43,7 @@
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(getFtpUrl() + "&sortBy=file:name.ext").to("mock:result");
+                from(getFtpUrl() + "&sortBy=file:ext").to("mock:result");
             }
         });
         context.start();
@@ -58,7 +58,7 @@
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(getFtpUrl() + "&sortBy=reverse:file:name.ext").to("mock:reverse");
+                from(getFtpUrl() + "&sortBy=reverse:file:ext").to("mock:reverse");
             }
         });
         context.start();

Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByNestedExpressionTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByNestedExpressionTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByNestedExpressionTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpRemoteFileSortByNestedExpressionTest.java Sun Mar  8 11:15:47 2009
@@ -43,7 +43,7 @@
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(getFtpUrl() + "&sortBy=file:name.ext;file:name").to("mock:result");
+                from(getFtpUrl() + "&sortBy=file:ext;file:name").to("mock:result");
             }
         });
         context.start();
@@ -58,7 +58,7 @@
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(getFtpUrl() + "&sortBy=file:name.ext;reverse:file:name").to("mock:reverse");
+                from(getFtpUrl() + "&sortBy=file:ext;reverse:file:name").to("mock:reverse");
             }
         });
         context.start();

Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java Sun Mar  8 11:15:47 2009
@@ -34,11 +34,13 @@
     // must user "consumer." prefix on the parameters to the file component
     private String getFtpUrl() {
         return "ftp://admin@localhost:" + getPort() + "/incoming?password=admin&binary=true"
-                + "&consumer.delay=2000&recursive=true";
+                + "&initialDelay=2500&delay=5000&recursive=true";
     }
 
     @Override
     protected void setUp() throws Exception {
+        deleteDirectory(FTP_ROOT_DIR + "/incoming");
+        deleteDirectory("./target/ftpsetnamestest");
         super.setUp();
         prepareFtpServer();
     }
@@ -89,8 +91,7 @@
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                String fileUrl = "file:target/ftpsetnamestest/?noop=true";
-                from(getFtpUrl()).to(fileUrl, "mock:result");
+                from(getFtpUrl()).to("file:target/ftpsetnamestest", "mock:result");
             }
         };
     }

Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java Sun Mar  8 11:15:47 2009
@@ -49,20 +49,20 @@
 
         RemoteFileExchange exchange = (RemoteFileExchange) mock.getExchanges().get(0);
         RemoteFile file = (RemoteFile) exchange.getGenericFile();
-        assertDirectoryEquals("multidir/bye.txt", file.getAbsoluteFileName());
-        assertDirectoryEquals("bye.txt", file.getRelativeFileName());
+        assertDirectoryEquals("multidir/bye.txt", file.getAbsoluteFilePath());
+        assertDirectoryEquals("bye.txt", file.getRelativeFilePath());
         assertEquals("bye.txt", file.getFileName());
 
         exchange = (RemoteFileExchange) mock.getExchanges().get(1);
         file = (RemoteFile) exchange.getGenericFile();
-        assertDirectoryEquals("multidir/sub/hello.txt", file.getAbsoluteFileName());
-        assertDirectoryEquals("sub/hello.txt", file.getRelativeFileName());
+        assertDirectoryEquals("multidir/sub/hello.txt", file.getAbsoluteFilePath());
+        assertDirectoryEquals("sub/hello.txt", file.getRelativeFilePath());
         assertEquals("hello.txt", file.getFileName());
 
         exchange = (RemoteFileExchange) mock.getExchanges().get(2);
         file = (RemoteFile) exchange.getGenericFile();
-        assertDirectoryEquals("multidir/sub/sub2/godday.txt", file.getAbsoluteFileName());
-        assertDirectoryEquals("sub/sub2/godday.txt", file.getRelativeFileName());
+        assertDirectoryEquals("multidir/sub/sub2/godday.txt", file.getAbsoluteFilePath());
+        assertDirectoryEquals("sub/sub2/godday.txt", file.getRelativeFilePath());
         assertEquals("godday.txt", file.getFileName());
     }
 

Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java?rev=751401&r1=751400&r2=751401&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java Sun Mar  8 11:15:47 2009
@@ -50,8 +50,8 @@
 
         RemoteFileExchange exchange = (RemoteFileExchange) mock.getExchanges().get(0);
         RemoteFile file = (RemoteFile) exchange.getGenericFile();
-        assertEquals("hello.txt", file.getAbsoluteFileName());
-        assertEquals("hello.txt", file.getRelativeFileName());
+        assertEquals("hello.txt", file.getAbsoluteFilePath());
+        assertEquals("hello.txt", file.getRelativeFilePath());
         assertEquals("hello.txt", file.getFileName());
     }