From 5864a601ae420a4833ea2b0cf882e03e464350ef Mon Sep 17 00:00:00 2001
From: ribeaudc <ribeaudc>
Date: Wed, 2 Jul 2008 08:29:53 +0000
Subject: [PATCH] fix: - Integration tests.

SVN: 6976
---
 .../systemsx/cisd/datamover/IncomingProcessor.java   |  2 +-
 .../java/ch/systemsx/cisd/datamover/Parameters.java  | 12 ++++++------
 .../cisd/datamover/utils/DataCompletedFilter.java    | 12 +++++++-----
 .../ch/systemsx/cisd/datamover/ParametersTest.java   |  5 +++--
 4 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/IncomingProcessor.java b/datamover/source/java/ch/systemsx/cisd/datamover/IncomingProcessor.java
index 5acdef3f6a8..8e82ed8aef0 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/IncomingProcessor.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/IncomingProcessor.java
@@ -120,7 +120,7 @@ public class IncomingProcessor implements IRecoverableTimerTaskFactory
     {
         final StoreItemFilterBank filterBank = new StoreItemFilterBank();
         filterBank.add(new QuietPeriodFileFilter(incomingStore, parameters, timeProvider));
-        final String dataCompletedScript = parameters.getDataCompletedScript();
+        final File dataCompletedScript = parameters.getDataCompletedScript();
         if (dataCompletedScript != null)
         {
             final long timeout = parameters.getDataCompletedScriptTimeout();
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/Parameters.java b/datamover/source/java/ch/systemsx/cisd/datamover/Parameters.java
index 658317ed8b7..63fdc830847 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/Parameters.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/Parameters.java
@@ -26,7 +26,6 @@ import java.util.Properties;
 import java.util.regex.Pattern;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.apache.commons.lang.time.DurationFormatUtils;
 import org.apache.log4j.Logger;
@@ -37,6 +36,7 @@ import ch.systemsx.cisd.args4j.CmdLineException;
 import ch.systemsx.cisd.args4j.CmdLineParser;
 import ch.systemsx.cisd.args4j.ExampleMode;
 import ch.systemsx.cisd.args4j.Option;
+import ch.systemsx.cisd.args4j.spi.FileOptionHandler;
 import ch.systemsx.cisd.args4j.spi.LongOptionHandler;
 import ch.systemsx.cisd.args4j.spi.OptionHandler;
 import ch.systemsx.cisd.args4j.spi.Setter;
@@ -78,8 +78,8 @@ public final class Parameters implements ITimingParameters, IFileSysParameters
             LogFactory.getLogger(LogCategory.NOTIFY, Parameters.class);
 
     @Option(longName = PropertyNames.DATA_COMPLETED_SCRIPT, metaVar = "EXEC", usage = "Optional script "
-            + "which checks whether incoming data is complete or not.")
-    private String dataCompletedScript;
+            + "which checks whether incoming data is complete or not.", handler = FileOptionHandler.class)
+    private File dataCompletedScript;
 
     @Option(longName = PropertyNames.DATA_COMPLETED_SCRIPT_TIMEOUT, usage = "Timeout (in seconds) after which data completed script will be stopped "
             + "[default: " + DEFAULT_DATA_COMPLETED_SCRIPT_TIMEOUT + "]", handler = MillisecondConversionOptionHandler.class)
@@ -425,7 +425,7 @@ public final class Parameters implements ITimingParameters, IFileSysParameters
     {
         final Properties serviceProperties = loadServiceProperties();
         dataCompletedScript =
-                PropertyUtils.getProperty(serviceProperties, PropertyNames.DATA_COMPLETED_SCRIPT,
+                tryCreateFile(serviceProperties, PropertyNames.DATA_COMPLETED_SCRIPT,
                         dataCompletedScript);
         dataCompletedScriptTimeout =
                 toMillis(PropertyUtils.getPosLong(serviceProperties,
@@ -553,9 +553,9 @@ public final class Parameters implements ITimingParameters, IFileSysParameters
         }
     }
 
-    public final String getDataCompletedScript()
+    public final File getDataCompletedScript()
     {
-        return StringUtils.defaultIfEmpty(dataCompletedScript, null);
+        return dataCompletedScript;
     }
 
     public final long getDataCompletedScriptTimeout()
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/utils/DataCompletedFilter.java b/datamover/source/java/ch/systemsx/cisd/datamover/utils/DataCompletedFilter.java
index f1c8586870c..a9d04608b94 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/utils/DataCompletedFilter.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/utils/DataCompletedFilter.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.datamover.utils;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -28,6 +29,7 @@ import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.logging.LogLevel;
 import ch.systemsx.cisd.common.process.ProcessExecutionHelper;
 import ch.systemsx.cisd.common.process.ProcessResult;
+import ch.systemsx.cisd.common.utilities.FileUtilities;
 import ch.systemsx.cisd.common.utilities.OSUtilities;
 import ch.systemsx.cisd.common.utilities.StoreItem;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
@@ -57,7 +59,7 @@ public class DataCompletedFilter implements IStoreItemFilter
 
     private final IFileStore fileStore;
 
-    private final String dataCompletedScript;
+    private final File dataCompletedScript;
 
     private final long dataCompletedScriptTimeout;
 
@@ -68,7 +70,7 @@ public class DataCompletedFilter implements IStoreItemFilter
     /**
      * Creates an instance for the specified file store, data completed script, and script time out.
      */
-    public DataCompletedFilter(final IFileStore fileStore, final String dataCompletedScript,
+    public DataCompletedFilter(final IFileStore fileStore, final File dataCompletedScript,
             final long dataCompletedScriptTimeout)
     {
         if (dataCompletedScript == null)
@@ -94,7 +96,7 @@ public class DataCompletedFilter implements IStoreItemFilter
         {
             command.add("sh");
         }
-        command.add(getDataCompletedScript());
+        command.add(FileUtilities.getCanonicalPath(getDataCompletedScript()));
         command.add(storeItemLocation.getAbsolutePath());
         final String host = storeItemLocation.getHost();
         if (host != null)
@@ -104,7 +106,7 @@ public class DataCompletedFilter implements IStoreItemFilter
         return command;
     }
 
-    private final String getDataCompletedScript()
+    private final File getDataCompletedScript()
     {
         if (OSUtilities.executableExists(dataCompletedScript) == false)
         {
@@ -113,7 +115,7 @@ public class DataCompletedFilter implements IStoreItemFilter
         } else
         {
             notificationLogger.reset(String.format("Script '%s' is again accessible.",
-                    dataCompletedScript));
+                    FileUtilities.getCanonicalPath(dataCompletedScript)));
         }
         return dataCompletedScript;
     }
diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java
index d3e2bbd5f77..fed16e559b8 100644
--- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java
+++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java
@@ -178,7 +178,8 @@ public final class ParametersTest extends AbstractFileSystemTestCase
         // With a highwater mark value
         parameters =
                 parse("--" + optionName, localTempDir
-                        + HostAwareFileWithHighwaterMarkHandler.DIRECTORY_HIGHWATERMARK_SEP + highwaterMark);
+                        + HostAwareFileWithHighwaterMarkHandler.DIRECTORY_HIGHWATERMARK_SEP
+                        + highwaterMark);
         hostAwareFileWithHighwaterMark = getFileWithHighwaterMark(optionName, parameters);
         assertEquals(localTempDir, hostAwareFileWithHighwaterMark.getFile().getPath());
         assertEquals(highwaterMark, hostAwareFileWithHighwaterMark.getHighwaterMark());
@@ -224,7 +225,7 @@ public final class ParametersTest extends AbstractFileSystemTestCase
         final File scriptFile = new File(workingDirectory, scriptName);
         FileUtils.touch(scriptFile);
         parameters = parse("--" + PropertyNames.DATA_COMPLETED_SCRIPT, scriptFile.getPath());
-        assertEquals(scriptFile.getPath(), parameters.getDataCompletedScript());
+        assertEquals(scriptFile, parameters.getDataCompletedScript());
     }
 
     @Test
-- 
GitLab