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