Author: ruwan
Date: Tue Oct 30 02:05:35 2007
New Revision: 589995
URL: http://svn.apache.org/viewvc?rev=589995&view=rev
Log:
Applying Upul's patch on SYNAPSE-164
Modified:
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/PollTableEntry.java
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSConstants.java
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportListener.java
Modified:
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/PollTableEntry.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/PollTableEntry.java?rev=589995&r1=589994&r2=589995&view=diff
==============================================================================
---
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/PollTableEntry.java
(original)
+++
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/PollTableEntry.java
Tue Oct 30 02:05:35 2007
@@ -163,7 +163,15 @@
}
public void setMoveAfterProcess(String moveAfterProcess) {
- this.moveAfterProcess = moveAfterProcess;
+ if (moveAfterProcess == null) {
+ this.moveAfterProcess = null;
+ } else if (moveAfterProcess.startsWith(VFSConstants.VFS_PREFIX)) {
+ // to recover a good directory location if user entered with the
vfs: prefix
+ // because transport uris are given like that
+ this.moveAfterProcess =
moveAfterProcess.substring(VFSConstants.VFS_PREFIX.length());
+ } else {
+ this.moveAfterProcess = moveAfterProcess;
+ }
}
public String getMoveAfterErrors() {
@@ -171,7 +179,13 @@
}
public void setMoveAfterErrors(String moveAfterErrors) {
- this.moveAfterErrors = moveAfterErrors;
+ if (moveAfterErrors == null) {
+ this.moveAfterErrors = null;
+ } else if (moveAfterErrors.startsWith(VFSConstants.VFS_PREFIX)) {
+ this.moveAfterErrors =
moveAfterErrors.substring(VFSConstants.VFS_PREFIX.length());
+ } else {
+ this.moveAfterErrors = moveAfterErrors;
+ }
}
public String getMoveAfterFailure() {
@@ -179,6 +193,12 @@
}
public void setMoveAfterFailure(String moveAfterFailure) {
- this.moveAfterFailure = moveAfterFailure;
+ if (moveAfterFailure == null) {
+ this.moveAfterFailure = null;
+ } else if (moveAfterFailure.startsWith(VFSConstants.VFS_PREFIX)) {
+ this.moveAfterFailure =
moveAfterFailure.substring(VFSConstants.VFS_PREFIX.length());
+ } else {
+ this.moveAfterFailure = moveAfterFailure;
+ }
}
}
Modified:
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSConstants.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSConstants.java?rev=589995&r1=589994&r2=589995&view=diff
==============================================================================
---
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSConstants.java
(original)
+++
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSConstants.java
Tue Oct 30 02:05:35 2007
@@ -26,6 +26,11 @@
public static final String TRANSPORT_FILE_ACTION_AFTER_PROCESS =
"transport.vfs.ActionAfterProcess";
public static final String TRANSPORT_FILE_ACTION_AFTER_ERRORS =
"transport.vfs.ActionAfterErrors";
public static final String TRANSPORT_FILE_ACTION_AFTER_FAILURE =
"transport.vfs.ActionAfterFailure";
+
+ public static final String TRANSPORT_FILE_MOVE_AFTER_PROCESS =
"transport.vfs.MoveAfterProcess";
+ public static final String TRANSPORT_FILE_MOVE_AFTER_ERRORS =
"transport.vfs.MoveAfterErrors";
+ public static final String TRANSPORT_FILE_MOVE_AFTER_FAILURE =
"transport.vfs.MoveAfterFailure";
+
public static final String TRANSPORT_FILE_FILE_URI =
"transport.vfs.FileURI";
public static final String TRANSPORT_FILE_FILE_NAME_PATTERN =
"transport.vfs.FileNamePattern";
public static final String TRANSPORT_FILE_CONTENT_TYPE =
"transport.vfs.ContentType";
Modified:
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportListener.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportListener.java?rev=589995&r1=589994&r2=589995&view=diff
==============================================================================
---
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportListener.java
(original)
+++
webservices/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportListener.java
Tue Oct 30 02:05:35 2007
@@ -33,6 +33,7 @@
import javax.xml.namespace.QName;
import java.util.*;
+import java.io.File;
/**
* The "vfs" transport is a polling based transport - i.e. it gets kicked off
at
@@ -174,25 +175,44 @@
try {
processFile(entry, fileObject);
entry.setLastPollState(PollTableEntry.SUCCSESSFUL);
+
} catch (AxisFault e) {
entry.setLastPollState(PollTableEntry.FAILED);
}
+
+ moveOrDeleteAfterProcessing(entry, fileObject);
}
} else {
int failCount = 0;
int successCount = 0;
+ if (log.isDebugEnabled()) {
+ log.debug("File name pattern :" +
entry.getFileNamePattern());
+ }
for (int i = 0; i < children.length; i++) {
- if (children[i].getName().getBaseName().matches(
- entry.getFileNamePattern())) {
+ if (log.isDebugEnabled()) {
+ log.debug("Matching file :" +
children[i].getName().getBaseName());
+ }
+ if ( (entry.getFileNamePattern() != null)
+ &&
(children[i].getName().getBaseName().matches(entry.getFileNamePattern()))) {
try {
+ if (log.isDebugEnabled()) {
+ log.debug("Processing file :" +
children[i]);
+ }
processFile(entry, children[i]);
successCount++;
+ // tell moveOrDeleteAfterProcessing() file was
success
+
entry.setLastPollState(PollTableEntry.SUCCSESSFUL);
+
} catch (Exception e) {
- logException("Error processing File URI : " +
entry.getFileURI(), e);
+ logException("Error processing File URI : " +
children[i].getName(), e);
failCount++;
- }
+ // tell moveOrDeleteAfterProcessing() file
failed
+ entry.setLastPollState(PollTableEntry.FAILED);
+ }
+
+ moveOrDeleteAfterProcessing(entry, children[i]);
}
}
@@ -209,7 +229,6 @@
long now = System.currentTimeMillis();
entry.setLastPollTime(now);
entry.setNextPollTime(now + entry.getPollInterval());
- moveOrDeleteAfterProcessing(entry, fileObject);
} else {
if (log.isDebugEnabled()) {
@@ -255,8 +274,11 @@
}
if (moveToDirectory != null) {
- FileObject dest = fsManager.resolveFile(moveToDirectory);
- dest = dest.getChild(fileObject.getName().getBaseName());
+ String destName = moveToDirectory + File.separator +
fileObject.getName().getBaseName();
+ if (log.isDebugEnabled()) {
+ log.debug("Moving to file :" + destName);
+ }
+ FileObject dest = fsManager.resolveFile(destName);
try {
fileObject.moveTo(dest);
} catch (FileSystemException e) {
@@ -264,29 +286,12 @@
}
} else {
try {
+ if (log.isDebugEnabled()) {
+ log.debug("Deleting file :" + fileObject);
+ }
fileObject.close();
- if (fileObject.getChildren().length > 0) {
- if (fileObject.delete(new FileSelector() {
-
- public boolean includeFile(FileSelectInfo
fileSelectInfo) throws Exception {
- if (entry.getFileNamePattern().equals(
-
fileSelectInfo.getFile().getName().getBaseName())) {
- return true;
- } else {
- return false;
- }
- }
-
- public boolean traverseDescendents(FileSelectInfo
fileSelectInfo) throws Exception {
- return true;
- }
- }) == 0) {
- log.error("Error deleting file : " + fileObject);
- }
- } else {
- if (!fileObject.delete()) {
- log.error("Error deleting file : " + fileObject);
- }
+ if (!fileObject.delete()) {
+ log.error("Cannot delete file : " + fileObject);
}
} catch (FileSystemException e) {
log.error("Error deleting file : " + fileObject, e);
@@ -468,6 +473,16 @@
service, VFSConstants.TRANSPORT_FILE_ACTION_AFTER_FAILURE);
entry.setActionAfterFailure(
MOVE.equals(option) ? PollTableEntry.MOVE :
PollTableEntry.DELETE);
+
+ String moveDirectoryAfterProcess =
BaseUtils.getOptionalServiceParam(
+ service, VFSConstants.TRANSPORT_FILE_MOVE_AFTER_PROCESS);
+ entry.setMoveAfterProcess(moveDirectoryAfterProcess);
+ String moveDirectoryAfterErrors =
BaseUtils.getOptionalServiceParam(
+ service, VFSConstants.TRANSPORT_FILE_MOVE_AFTER_ERRORS);
+ entry.setMoveAfterErrors(moveDirectoryAfterErrors);
+ String moveDirectoryAfterFailure =
BaseUtils.getOptionalServiceParam(
+ service, VFSConstants.TRANSPORT_FILE_MOVE_AFTER_FAILURE);
+ entry.setMoveAfterFailure(moveDirectoryAfterFailure);
entry.setServiceName(service.getName());
schedulePoll(service, pollInterval);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]