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/01/30 07:26:07 UTC
svn commit: r739191 - in
/camel/trunk/camel-core/src/main/java/org/apache/camel: component/file/
impl/converter/
Author: davsclaus
Date: Fri Jan 30 06:26:07 2009
New Revision: 739191
URL: http://svn.apache.org/viewvc?rev=739191&view=rev
Log:
CAMEL-1241: Fixed generic file component to use File.separator instead of / to work on all platforms.
Modified:
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/GenericFileComponent.java
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConfiguration.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/GenericFileDefaultBinding.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/GenericFileMessage.java
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/NewFileConsumer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java
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=739191&r1=739190&r2=739191&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 Fri Jan 30 06:26:07 2009
@@ -73,26 +73,26 @@
* @param newName the new name
*/
public void changeFileName(String newName) {
- setAbsoluteFileName(getParent() + "/" + newName);
+ setAbsoluteFileName(getParent() + File.separator + newName);
// relative name is a bit more complex to set as newName itself can contain
// folders we need to consider as well
String baseNewName = null;
- if (newName.indexOf("/") != -1) {
- baseNewName = newName.substring(0, newName.lastIndexOf("/"));
- newName = newName.substring(newName.lastIndexOf("/") + 1);
+ if (newName.indexOf(File.separator) != -1) {
+ baseNewName = newName.substring(0, newName.lastIndexOf(File.separator));
+ newName = newName.substring(newName.lastIndexOf(File.separator) + 1);
}
- if (relativeFileName.indexOf("/") != -1) {
- String relative = relativeFileName.substring(0, relativeFileName.lastIndexOf("/"));
+ if (relativeFileName.indexOf(File.separator) != -1) {
+ String relative = relativeFileName.substring(0, relativeFileName.lastIndexOf(File.separator));
if (baseNewName != null) {
- setRelativeFileName(relative + "/" + baseNewName + "/" + newName);
+ setRelativeFileName(relative + File.separator + baseNewName + File.separator + newName);
} else {
- setRelativeFileName(relative + "/" + newName);
+ setRelativeFileName(relative + File.separator + newName);
}
} else {
if (baseNewName != null) {
- setRelativeFileName(baseNewName + "/" + newName);
+ setRelativeFileName(baseNewName + File.separator + newName);
} else {
setRelativeFileName(newName);
}
@@ -150,8 +150,8 @@
}
public String getParent() {
- if (getAbsoluteFileName().lastIndexOf("/") > 0) {
- return getAbsoluteFileName().substring(0, getAbsoluteFileName().lastIndexOf("/"));
+ if (getAbsoluteFileName().lastIndexOf(File.separator) > 0) {
+ return getAbsoluteFileName().substring(0, getAbsoluteFileName().lastIndexOf(File.separator));
} else {
return "";
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java?rev=739191&r1=739190&r2=739191&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java Fri Jan 30 06:26:07 2009
@@ -63,14 +63,23 @@
}
/**
- * File Components implements this method
+ * A factory method for derived file components to create the endpoint
+ *
+ * @param uri the full URI of the endpoint
+ * @param remaining the remaining part of the URI without the query
+ * parameters or component prefix
+ * @param parameters the optional parameters passed in
+ * @return a newly created endpoint or null if the endpoint cannot be
+ * created based on the inputs
+ * @throws Exception can be thrown
*/
protected abstract GenericFileEndpoint<T> buildFileEndpoint(String uri, String remaining, Map parameters) throws Exception;
/**
- * File Components implements this method
+ * A factory method for derived file components to perform validation of properties
*
- * @param endpoint the newly created endpoint to do some custom post configuration
+ * @param endpoint the endpoint
+ * @throws Exception can be thrown in case of validation errors
*/
protected abstract void afterPropertiesSet(GenericFileEndpoint<T> endpoint) throws Exception;
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConfiguration.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConfiguration.java?rev=739191&r1=739190&r2=739191&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConfiguration.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConfiguration.java Fri Jan 30 06:26:07 2009
@@ -22,10 +22,6 @@
private String file;
- public GenericFileConfiguration() {
- super();
- }
-
public void configure(URI uri) {
setFile(uri.getPath());
}
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=739191&r1=739190&r2=739191&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 Fri Jan 30 06:26:07 2009
@@ -50,7 +50,9 @@
// before we poll is there anything we need to check ? Such as are we
// connected to the FTP Server Still ?
- prePollCheck();
+ if (!prePollCheck()) {
+ log.debug("Skipping pool as pre poll check returned false");
+ }
// gather list of files to process
List<GenericFile<T>> files = new ArrayList<GenericFile<T>>();
@@ -133,7 +135,7 @@
}
try {
- final GenericFileProcessStrategy processStrategy = endpoint.getGenericFileProcessStrategy();
+ final GenericFileProcessStrategy<T> processStrategy = endpoint.getGenericFileProcessStrategy();
if (processStrategy.begin(operations, endpoint, exchange, exchange.getGenericFile())) {
@@ -206,8 +208,8 @@
* <tt>true</tt> if an exception occured during processing but it
* was handled by the failure processor (usually the DeadLetterChannel).
*/
- protected void processStrategyCommit(GenericFileProcessStrategy processStrategy,
- GenericFileExchange exchange, GenericFile<T> file, boolean failureHandled) {
+ protected void processStrategyCommit(GenericFileProcessStrategy<T> processStrategy,
+ GenericFileExchange<T> exchange, GenericFile<T> file, boolean failureHandled) {
if (endpoint.isIdempotent()) {
// only add to idempotent repository if we could process the file
// only use the filename as the key as the file could be moved into a done folder
@@ -234,8 +236,8 @@
* @param exchange the exchange
* @param file the file processed
*/
- protected void processStrategyRollback(GenericFileProcessStrategy processStrategy,
- GenericFileExchange exchange, GenericFile<T> file) {
+ protected void processStrategyRollback(GenericFileProcessStrategy<T> processStrategy,
+ GenericFileExchange<T> exchange, GenericFile<T> file) {
if (log.isDebugEnabled()) {
log.debug("Rolling back remote file strategy: " + processStrategy + " for file: " + file);
}
@@ -332,11 +334,4 @@
return true;
}
- /**
- * Override if required
- */
- protected void doStop() throws Exception {
- super.doStop();
- }
-
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileDefaultBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileDefaultBinding.java?rev=739191&r1=739190&r2=739191&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileDefaultBinding.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileDefaultBinding.java Fri Jan 30 06:26:07 2009
@@ -23,11 +23,11 @@
private Object body;
- public Object getBody(GenericFile genericFile) {
+ public Object getBody(GenericFile file) {
return body;
}
- public void setBody(GenericFile genericFile, Object body) {
+ public void setBody(GenericFile file, Object body) {
this.body = body;
}
}
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=739191&r1=739190&r2=739191&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 Fri Jan 30 06:26:07 2009
@@ -37,7 +37,7 @@
import org.apache.commons.logging.LogFactory;
/**
- * Generic Endpoint
+ * Generic FileEndpoint
*/
public abstract class GenericFileEndpoint<T> extends ScheduledPollEndpoint {
@@ -46,7 +46,7 @@
protected final transient Log log = LogFactory.getLog(getClass());
- protected GenericFileProcessStrategy processStrategy;
+ protected GenericFileProcessStrategy<T> processStrategy;
protected GenericFileOperations<T> operations;
protected GenericFileConfiguration configuration;
@@ -109,7 +109,7 @@
return UuidGenerator.generateSanitizedId(message.getMessageId());
}
- public GenericFileProcessStrategy getGenericFileProcessStrategy() {
+ public GenericFileProcessStrategy<T> getGenericFileProcessStrategy() {
if (processStrategy == null) {
processStrategy = createGenericFileStrategy();
if (log.isDebugEnabled()) {
@@ -122,7 +122,8 @@
/**
* A strategy method to lazily create the file strategy
*/
- protected GenericFileProcessStrategy createGenericFileStrategy() {
+ @SuppressWarnings("unchecked")
+ protected GenericFileProcessStrategy<T> createGenericFileStrategy() {
Class<?> factory = null;
try {
FactoryFinder finder = getCamelContext().createFactoryFinder("META-INF/services/org/apache/camel/component/");
@@ -143,13 +144,13 @@
try {
Method factoryMethod = factory.getMethod("createGenericFileProcessStrategy", Map.class);
- return (GenericFileProcessStrategy) ObjectHelper.invokeMethod(factoryMethod, null, getParamsAsMap());
+ return (GenericFileProcessStrategy<T>) ObjectHelper.invokeMethod(factoryMethod, null, getParamsAsMap());
} catch (NoSuchMethodException e) {
throw new TypeNotPresentException(factory.getSimpleName() + ".createGenericFileProcessStrategy(GenericFileEndpoint endpoint) method not found", e);
}
}
- public void setGenericFileProcessStrategy(GenericFileProcessStrategy genericFileProcessStrategy) {
+ public void setGenericFileProcessStrategy(GenericFileProcessStrategy<T> genericFileProcessStrategy) {
this.processStrategy = genericFileProcessStrategy;
}
@@ -408,11 +409,11 @@
this.operations = operations;
}
- public GenericFileProcessStrategy getProcessStrategy() {
+ public GenericFileProcessStrategy<T> getProcessStrategy() {
return processStrategy;
}
- public void setProcessStrategy(GenericFileProcessStrategy processStrategy) {
+ public void setProcessStrategy(GenericFileProcessStrategy<T> processStrategy) {
this.processStrategy = processStrategy;
}
@@ -479,7 +480,7 @@
params.put("readLock", readLock);
}
if (readLockTimeout > 0) {
- params.put("readLockTimeout", Long.valueOf(readLockTimeout));
+ params.put("readLockTimeout", readLockTimeout);
}
return params;
}
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=739191&r1=739190&r2=739191&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 Fri Jan 30 06:26:07 2009
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.file;
+import java.io.File;
import java.util.Date;
import org.apache.camel.CamelContext;
@@ -26,7 +27,7 @@
public class GenericFileExchange<T> extends DefaultExchange {
- private GenericFile<T> genericFile;
+ private GenericFile<T> file;
public GenericFileExchange(CamelContext context) {
super(context);
@@ -44,53 +45,53 @@
super(fromEndpoint);
}
- public GenericFileExchange(GenericFileEndpoint endpoint, ExchangePattern pattern, GenericFile<T> genericFile) {
+ public GenericFileExchange(GenericFileEndpoint endpoint, ExchangePattern pattern, GenericFile<T> file) {
super(endpoint, pattern);
- setGenericFile(genericFile);
+ setGenericFile(file);
}
- public GenericFileExchange(DefaultExchange parent, GenericFile<T> genericFile) {
+ public GenericFileExchange(DefaultExchange parent, GenericFile<T> file) {
super(parent);
- setGenericFile(genericFile);
+ setGenericFile(file);
}
public GenericFileExchange(Endpoint fromEndpoint, ExchangePattern pattern) {
super(fromEndpoint, pattern);
}
- protected void populateHeaders(GenericFile<T> genericFile) {
- if (genericFile != null) {
- getIn().setHeader("CamelFileName", genericFile.getFileName());
- getIn().setHeader("CamelFileAbsolutePath", genericFile.getAbsoluteFileName());
+ protected void populateHeaders(GenericFile<T> file) {
+ if (file != null) {
+ getIn().setHeader("CamelFileName", file.getFileName());
+ getIn().setHeader("CamelFileAbsolutePath", file.getAbsoluteFileName());
// set the parent if there is a parent folder
- if (genericFile.getRelativeFileName().lastIndexOf("/") != -1) {
- String parent = genericFile.getRelativeFileName().substring(0, genericFile.getRelativeFileName().lastIndexOf("/"));
+ if (file.getRelativeFileName().lastIndexOf(File.separator) != -1) {
+ String parent = file.getRelativeFileName().substring(0, file.getRelativeFileName().lastIndexOf(File.separator));
getIn().setHeader("CamelFileParent", parent);
}
- getIn().setHeader("CamelFilePath", genericFile.getRelativeFileName());
- getIn().setHeader("CamelFileCanonicalPath", genericFile.getCanonicalFileName());
+ getIn().setHeader("CamelFilePath", file.getRelativeFileName());
+ getIn().setHeader("CamelFileCanonicalPath", file.getCanonicalFileName());
- if (genericFile.getFileLength() > 0) {
- getIn().setHeader("CamelFileLength", genericFile.getFileLength());
+ if (file.getFileLength() > 0) {
+ getIn().setHeader("CamelFileLength", file.getFileLength());
}
- if (genericFile.getLastModified() > 0) {
- getIn().setHeader("CamelFileLastModified", new Date(genericFile.getLastModified()));
+ if (file.getLastModified() > 0) {
+ getIn().setHeader("CamelFileLastModified", new Date(file.getLastModified()));
}
}
}
public GenericFile<T> getGenericFile() {
- return genericFile;
+ return file;
}
- public void setGenericFile(GenericFile<T> genericFile) {
- setIn(new GenericFileMessage(genericFile));
- this.genericFile = genericFile;
- populateHeaders(genericFile);
+ public void setGenericFile(GenericFile<T> file) {
+ setIn(new GenericFileMessage<T>(file));
+ this.file = file;
+ populateHeaders(file);
}
public Exchange newInstance() {
- return new GenericFileExchange<T>(this, genericFile);
+ return new GenericFileExchange<T>(this, file);
}
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileMessage.java?rev=739191&r1=739190&r2=739191&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileMessage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileMessage.java Fri Jan 30 06:26:07 2009
@@ -19,34 +19,35 @@
import org.apache.camel.impl.DefaultMessage;
/**
- * Remote file message
+ * Generic file message
*/
public class GenericFileMessage<T> extends DefaultMessage {
- private GenericFile<T> genericFile;
+ private GenericFile<T> file;
public GenericFileMessage() {
}
- public GenericFileMessage(GenericFile<T> genericFile) {
- this.genericFile = genericFile;
+ public GenericFileMessage(GenericFile<T> file) {
+ this.file = file;
}
@Override
- public GenericFileExchange getExchange() {
- return (GenericFileExchange) super.getExchange();
+ @SuppressWarnings("unchecked")
+ public GenericFileExchange<T> getExchange() {
+ return (GenericFileExchange<T>) super.getExchange();
}
@Override
protected Object createBody() {
- return genericFile.getBody();
+ return file.getBody();
}
public GenericFile<T> getGenericFile() {
- return genericFile;
+ return file;
}
- public void setRemoteFile(GenericFile<T> genericFile) {
- this.genericFile = genericFile;
+ public void setGenericFile(GenericFile<T> file) {
+ this.file = file;
}
@Override
@@ -56,6 +57,6 @@
@Override
public String toString() {
- return "GenericFileMessage: " + genericFile;
+ return "GenericFileMessage: " + file;
}
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java?rev=739191&r1=739190&r2=739191&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java Fri Jan 30 06:26:07 2009
@@ -105,8 +105,7 @@
}
/**
- * Perform any actions that need to occur before we write Such as connecting
- * to an FTP server etc.
+ * Perform any actions that need to occur before we write such as connecting to an FTP server etc.
*/
protected void preWriteCheck() throws Exception {
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/NewFileConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/NewFileConsumer.java?rev=739191&r1=739190&r2=739191&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/NewFileConsumer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/NewFileConsumer.java Fri Jan 30 06:26:07 2009
@@ -82,7 +82,6 @@
// matched file so add
fileList.add(gf);
}
-
}
/**
@@ -106,7 +105,7 @@
}
answer.setLastModified(file.lastModified());
if (file.getParent() != null) {
- answer.setRelativeFileName(file.getParent() + "/" + file.getName());
+ answer.setRelativeFileName(file.getParent() + File.separator + file.getName());
} else {
answer.setRelativeFileName(file.getName());
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java?rev=739191&r1=739190&r2=739191&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/AnnotationTypeConverterLoader.java Fri Jan 30 06:26:07 2009
@@ -159,7 +159,7 @@
loadConverterMethods(registry, superclass);
}
} catch (NoClassDefFoundError e) {
- LOG.warn("Ignoring converter type: " + type.getName() + " as a dependent class could not be found: " + e, e);
+ LOG.warn("Ignoring converter type: " + type.getCanonicalName() + " as a dependent class could not be found: " + e, e);
}
}