Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,18 @@ public static String asExclusiveReadLockKey(String path, String key) {

public static <T> Exchange createDummy(GenericFileEndpoint<T> endpoint, Exchange dynamic, Supplier<GenericFile<T>> file) {
Exchange dummy = endpoint.createExchange(file.get());
enrichFromDynamic(dummy, dynamic);
return dummy;
}

public static <T> Exchange createDummy(GenericFileEndpoint<T> endpoint, Exchange dynamic) {
Exchange dummy = endpoint.createExchange();
enrichFromDynamic(dummy, dynamic);
return dummy;
}

private static void enrichFromDynamic(Exchange dummy, Exchange dynamic) {
if (dynamic != null) {
// enrich with data from dynamic source
if (dynamic.getMessage().hasHeaders()) {
MessageHelper.copyHeaders(dynamic.getMessage(), dummy.getMessage(), true);
}
Expand All @@ -102,7 +112,6 @@ public static <T> Exchange createDummy(GenericFileEndpoint<T> endpoint, Exchange
dummy.getProperties().putAll(dynamic.getProperties());
}
}
return dummy;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
import org.apache.camel.api.management.ManagedAttribute;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.file.GenericFileHelper;
import org.apache.camel.component.file.GenericFileOperationFailedException;
import org.apache.camel.component.file.GenericFileProcessStrategy;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.StringHelper;
Expand Down Expand Up @@ -136,7 +136,7 @@ protected boolean doPollDirectory(
// compute dir depending on stepwise is enabled or not
final String dir = computeDir(absolutePath, dirName);

final FTPFile[] files = getFtpFiles(dir);
final FTPFile[] files = getFtpFiles(dynamic, dir);

if (files == null || files.length == 0) {
// no files in this directory to poll
Expand Down Expand Up @@ -235,11 +235,11 @@ private String computeDir(String absolutePath, String dirName) {
return dir;
}

private FTPFile[] pollNamedFile() {
private FTPFile[] pollNamedFile(Exchange dynamic) {
FTPFile[] files = null;
// we cannot use the LIST command(s) so we can only poll a named
// file so created a pseudo file with that name
Exchange dummy = ExchangeHelper.getDummy(getEndpoint().getCamelContext());
Exchange dummy = GenericFileHelper.createDummy(getEndpoint(), dynamic);
String name = evaluateFileExpression(dummy);
if (name != null) {
FTPFile file = new FTPFile();
Expand All @@ -259,14 +259,14 @@ private FTPFile[] listFiles(String dir) {
return operations.listFiles(dir);
}

private FTPFile[] getFtpFiles(String dir) {
private FTPFile[] getFtpFiles(Exchange dynamic, String dir) {
FTPFile[] files = null;
try {
LOG.trace("Polling directory: {}", dir);
if (isUseList()) {
files = listFiles(dir);
} else {
files = pollNamedFile();
files = pollNamedFile(dynamic);
}
} catch (GenericFileOperationFailedException e) {
if (ignoreCannotRetrieveFile(null, null, e)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
import org.apache.camel.Message;
import org.apache.camel.Processor;
import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.file.GenericFileHelper;
import org.apache.camel.component.file.GenericFileOperationFailedException;
import org.apache.camel.component.file.GenericFileProcessStrategy;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.StringHelper;
Expand Down Expand Up @@ -136,7 +136,7 @@ protected boolean doPollDirectory(
dir = absolutePath;
}

final SftpRemoteFile[] files = getSftpRemoteFiles(dir);
final SftpRemoteFile[] files = getSftpRemoteFiles(dynamic, dir);

if (files == null || files.length == 0) {
// no files in this directory to poll
Expand Down Expand Up @@ -209,14 +209,14 @@ private SftpRemoteFile[] listFiles(String dir) {
return operations.listFiles(dir);
}

private SftpRemoteFile[] getSftpRemoteFiles(String dir) {
private SftpRemoteFile[] getSftpRemoteFiles(Exchange dynamic, String dir) {
SftpRemoteFile[] files = null;
try {
LOG.trace("Polling directory: {}", dir);
if (isUseList()) {
files = listFiles(dir);
} else {
files = pollNamedFile();
files = pollNamedFile(dynamic);
}
} catch (GenericFileOperationFailedException e) {
if (ignoreCannotRetrieveFile(null, null, e)) {
Expand All @@ -228,12 +228,12 @@ private SftpRemoteFile[] getSftpRemoteFiles(String dir) {
return files;
}

private SftpRemoteFile[] pollNamedFile() {
private SftpRemoteFile[] pollNamedFile(Exchange dynamic) {
SftpRemoteFile[] files = null;

// we cannot use the LIST command(s) so we can only poll a named
// file so created a pseudo file with that name
Exchange dummy = ExchangeHelper.getDummy(getEndpoint().getCamelContext());
Exchange dummy = GenericFileHelper.createDummy(getEndpoint(), dynamic);
String name = evaluateFileExpression(dummy);
if (name != null) {
SftpRemoteFile file = new SftpRemoteFileSingle(name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.apache.camel.Message;
import org.apache.camel.Processor;
import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.file.GenericFileHelper;
import org.apache.camel.component.file.GenericFileOperationFailedException;
import org.apache.camel.component.file.GenericFileProcessStrategy;
import org.apache.camel.component.file.remote.FtpConstants;
Expand All @@ -35,7 +36,6 @@
import org.apache.camel.component.file.remote.RemoteFileEndpoint;
import org.apache.camel.component.file.remote.RemoteFileOperations;
import org.apache.camel.component.file.remote.SftpRemoteFile;
import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.StringHelper;
Expand Down Expand Up @@ -143,7 +143,7 @@ protected boolean doPollDirectory(
dir = absolutePath;
}

final SftpRemoteFile[] files = getSftpRemoteFiles(dir);
final SftpRemoteFile[] files = getSftpRemoteFiles(dynamic, dir);

if (files == null || files.length == 0) {
// no files in this directory to poll
Expand Down Expand Up @@ -216,14 +216,14 @@ private SftpRemoteFile[] listFiles(String dir) {
return operations.listFiles(dir);
}

private SftpRemoteFile[] getSftpRemoteFiles(String dir) {
private SftpRemoteFile[] getSftpRemoteFiles(Exchange dynamic, String dir) {
SftpRemoteFile[] files = null;
try {
LOG.trace("Polling directory: {}", dir);
if (isUseList()) {
files = listFiles(dir);
} else {
files = pollNamedFile();
files = pollNamedFile(dynamic);
}
} catch (GenericFileOperationFailedException e) {
if (ignoreCannotRetrieveFile(null, null, e)) {
Expand All @@ -235,12 +235,12 @@ private SftpRemoteFile[] getSftpRemoteFiles(String dir) {
return files;
}

private SftpRemoteFile[] pollNamedFile() {
private SftpRemoteFile[] pollNamedFile(Exchange dynamic) {
SftpRemoteFile[] files = null;

// we cannot use the LIST command(s) so we can only poll a named
// file so created a pseudo file with that name
Exchange dummy = ExchangeHelper.getDummy(getEndpoint().getCamelContext());
Exchange dummy = GenericFileHelper.createDummy(getEndpoint(), dynamic);
String name = evaluateFileExpression(dummy);
if (name != null) {
SftpRemoteFile file = new MinaSftpRemoteFileSingle(name);
Expand Down
Loading