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 2010/07/28 07:50:45 UTC
svn commit: r979953 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/
camel-core/src/main/java/org/apache/camel/component/file/
camel-core/src/test/java/org/apache/camel/component/file/
components/camel-ftp/src/main/java/org/apache/camel/co...
Author: davsclaus
Date: Wed Jul 28 05:50:44 2010
New Revision: 979953
URL: http://svn.apache.org/viewvc?rev=979953&view=rev
Log:
CAMEL-2999: Added options startingDirectoryMustExist and directoryMustExist to file component.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/FailedToCreateConsumerException.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/FileEndpoint.java
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerAutoCreateDirectoryTest.java
camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/FailedToCreateConsumerException.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/FailedToCreateConsumerException.java?rev=979953&r1=979952&r2=979953&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/FailedToCreateConsumerException.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/FailedToCreateConsumerException.java Wed Jul 28 05:50:44 2010
@@ -31,11 +31,6 @@ public class FailedToCreateConsumerExcep
this.uri = endpoint.getEndpointUri();
}
- public FailedToCreateConsumerException(Endpoint endpoint, String message) {
- super("Failed to create Consumer for endpoint: " + endpoint + ". Reason: " + message);
- this.uri = endpoint.getEndpointUri();
- }
-
public FailedToCreateConsumerException(Endpoint endpoint, String message, Throwable cause) {
super("Failed to create Consumer for endpoint: " + endpoint + ". Reason: " + message, cause);
this.uri = endpoint.getEndpointUri();
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=979953&r1=979952&r2=979953&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 Wed Jul 28 05:50:44 2010
@@ -45,6 +45,9 @@ public class FileConsumer extends Generi
if (log.isDebugEnabled()) {
log.debug("Cannot poll as directory does not exists or its not a directory: " + directory);
}
+ if (getEndpoint().isDirectoryMustExist()) {
+ throw new GenericFileOperationFailedException("Directory does not exist: " + directory);
+ }
return true;
}
@@ -159,4 +162,9 @@ public class FileConsumer extends Generi
answer.setBody(file);
return answer;
}
+
+ @Override
+ public FileEndpoint getEndpoint() {
+ return (FileEndpoint) super.getEndpoint();
+ }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java?rev=979953&r1=979952&r2=979953&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java Wed Jul 28 05:50:44 2010
@@ -17,9 +17,11 @@
package org.apache.camel.component.file;
import java.io.File;
+import java.io.FileNotFoundException;
import org.apache.camel.Component;
import org.apache.camel.Exchange;
+import org.apache.camel.FailedToCreateConsumerException;
import org.apache.camel.Processor;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.processor.idempotent.MemoryIdempotentRepository;
@@ -62,6 +64,8 @@ public class FileEndpoint extends Generi
}
boolean absolute = FileUtil.isAbsolute(file);
operations.buildDirectory(file.getPath(), absolute);
+ } else if (isStartingDirectoryMustExist()) {
+ throw new FileNotFoundException("Starting directory does not exist: " + file);
}
}
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=979953&r1=979952&r2=979953&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 Wed Jul 28 05:50:44 2010
@@ -56,6 +56,8 @@ public abstract class GenericFileEndpoin
protected IdempotentRepository<String> inProgressRepository = new MemoryIdempotentRepository();
protected String localWorkDirectory;
protected boolean autoCreate = true;
+ protected boolean startingDirectoryMustExist;
+ protected boolean directoryMustExist;
protected int bufferSize = 128 * 1024;
protected GenericFileExist fileExist = GenericFileExist.Override;
protected boolean noop;
@@ -421,6 +423,22 @@ public abstract class GenericFileEndpoin
this.autoCreate = autoCreate;
}
+ public boolean isStartingDirectoryMustExist() {
+ return startingDirectoryMustExist;
+ }
+
+ public void setStartingDirectoryMustExist(boolean startingDirectoryMustExist) {
+ this.startingDirectoryMustExist = startingDirectoryMustExist;
+ }
+
+ public boolean isDirectoryMustExist() {
+ return directoryMustExist;
+ }
+
+ public void setDirectoryMustExist(boolean directoryMustExist) {
+ this.directoryMustExist = directoryMustExist;
+ }
+
public GenericFileProcessStrategy<T> getProcessStrategy() {
return processStrategy;
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerAutoCreateDirectoryTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerAutoCreateDirectoryTest.java?rev=979953&r1=979952&r2=979953&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerAutoCreateDirectoryTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerAutoCreateDirectoryTest.java Wed Jul 28 05:50:44 2010
@@ -17,6 +17,7 @@
package org.apache.camel.component.file;
import java.io.File;
+import java.io.FileNotFoundException;
import org.apache.camel.Consumer;
import org.apache.camel.ContextTestSupport;
@@ -87,5 +88,25 @@ public class FileConsumerAutoCreateDirec
assertFalse("Directory should NOT be created", dir.exists());
}
+ public void testStartingDirectoryMustExistDirectory() throws Exception {
+ deleteDirectory("target/file/foo");
+
+ Endpoint endpoint = context.getEndpoint("file://target/file/foo?autoCreate=false&startingDirectoryMustExist=true");
+ try {
+ endpoint.createConsumer(new Processor() {
+ public void process(Exchange exchange) throws Exception {
+ // noop
+ }
+ });
+ fail("Should have thrown an exception");
+ } catch (FileNotFoundException e) {
+ assertEquals("Starting directory does not exist: target/file/foo", e.getMessage());
+ }
+
+ // the directory should NOT exists
+ File dir = new File("target/file/foo").getAbsoluteFile();
+ assertFalse("Directory should NOT be created", dir.exists());
+ }
+
}
Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java?rev=979953&r1=979952&r2=979953&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java Wed Jul 28 05:50:44 2010
@@ -19,7 +19,6 @@ package org.apache.camel.component.file.
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.component.file.GenericFile;
-import org.apache.camel.component.file.GenericFileConfiguration;
import org.apache.camel.component.file.GenericFileEndpoint;
import org.apache.camel.component.file.GenericFileProducer;
import org.apache.camel.impl.DefaultExchange;