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]

Reply via email to