diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java index f19d3a64e76409e477517bc89fb01fcbd6204a00..0e933e7ca2ef27eb11e5cd74405926c09a166962 100644 --- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java +++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java @@ -16,8 +16,10 @@ package ch.systemsx.cisd.datamover.filesystem.remote; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.exceptions.StatusFlag; import ch.systemsx.cisd.common.logging.LogCategory; @@ -86,19 +88,24 @@ public final class RemotePathMover implements IStoreHandler * @param destinationDirectory The directory to move paths to. * @param copier Copies items from source to destination * @param monitor The activity monitor to inform about actions. - * @param timingParameters The timing parametes used for monitoring and reporting stall situations. + * @param timingParameters The timing parameters used for monitoring and reporting stall situations. + * + * @throws ConfigurationFailureException If the destination directory is not fully accessible. */ public RemotePathMover(IFileStore sourceDirectory, IFileStore destinationDirectory, IStoreCopier copier, - CopyActivityMonitor monitor, ITimingParameters timingParameters) + CopyActivityMonitor monitor, ITimingParameters timingParameters) throws ConfigurationFailureException { assert sourceDirectory != null; assert destinationDirectory != null; assert monitor != null; assert timingParameters != null; - String errorMsg; - assert (errorMsg = destinationDirectory.tryCheckDirectoryFullyAccessible(TIMEOUT_DESTINATION_MILLIS)) == null : errorMsg; assert sourceDirectory.tryAsExtended() != null || destinationDirectory.tryAsExtended() != null; + final String errorMsg = destinationDirectory.tryCheckDirectoryFullyAccessible(TIMEOUT_DESTINATION_MILLIS); + if (StringUtils.isNotBlank(errorMsg)) + { + throw new ConfigurationFailureException(errorMsg); + } this.sourceDirectory = sourceDirectory; this.destinationDirectory = destinationDirectory; this.copier = copier; diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncVersionChecker.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncVersionChecker.java index d1061379a7b3dc2fb32951c39acfa98d9fccac1d..ea829269ab0e01ed2ab3840951c6d3c2590083eb 100644 --- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncVersionChecker.java +++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncVersionChecker.java @@ -194,10 +194,10 @@ final class RsyncVersionChecker private static String tryGetRsyncVersion(String rsyncExecutableToCheck) { - final long TIME_TO_WAIT_FOR_COMPLETION = 2 * 1000; + final long timeToWaitForCompletion = 2 * 1000; final ProcessResult result = ProcessExecutionHelper.run(Arrays.asList(rsyncExecutableToCheck, "--version"), - TIME_TO_WAIT_FOR_COMPLETION, operationLog, machineLog); + timeToWaitForCompletion, operationLog, machineLog); result.log(); final List<String> processOutput = result.getProcessOutput(); if (processOutput.size() == 0) diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/MainTest.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/MainTest.java index 94af24ad76299fda7c160719194ee0ca58a3efa4..c84356861fe99331624b90efab00a242d8a00ba9 100644 --- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/MainTest.java +++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/MainTest.java @@ -99,15 +99,15 @@ public class MainTest private static final String MANUAL_INTERV_DIR = "manual-intervention"; - public File incoming; + private final File incoming; - public File outgoing; + private final File outgoing; - public File buffer; + private final File buffer; - public File extraCopy; + private final File extraCopy; - public File manualIntervDir; + private final File manualIntervDir; public ExternalDirs(File workingDirectory) throws IOException { diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java index 04c9aa920e71b404ecc7262894d40442a680e996..20f46e2559494be0f40fe3acc64995fe31ef5786 100644 --- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java +++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java @@ -49,69 +49,69 @@ public class ParametersTest @BeforeClass public void init() { - SystemExit.throwException = true; + SystemExit.setThrowException(true); } @AfterClass public void finish() { - SystemExit.throwException = false; + SystemExit.setThrowException(false); } @Test public void testSetRsyncExecutableLong() throws Exception { - final String RSYNC_EXEC = "/usr/local/bin/rsync"; - final Parameters parameters = parse("--rsync-executable", RSYNC_EXEC); - assertEquals(RSYNC_EXEC, parameters.getRsyncExecutable()); + final String rsyncExec = "/usr/local/bin/rsync"; + final Parameters parameters = parse("--rsync-executable", rsyncExec); + assertEquals(rsyncExec, parameters.getRsyncExecutable()); } @Test public void testSetSshExecutableLong() throws Exception { - final String SSH_EXEC = "/usr/local/bin/ssh"; - final Parameters parameters = parse("--ssh-executable", SSH_EXEC); - assertEquals(SSH_EXEC, parameters.getSshExecutable()); + final String sshExec = "/usr/local/bin/ssh"; + final Parameters parameters = parse("--ssh-executable", sshExec); + assertEquals(sshExec, parameters.getSshExecutable()); } @Test public void testSetLnExecutableLong() throws Exception { - final String EXEC = "/usr/local/bin/ln"; - final Parameters parameters = parse("--hard-link-executable", EXEC); - assertEquals(EXEC, parameters.getHardLinkExecutable()); + final String exec = "/usr/local/bin/ln"; + final Parameters parameters = parse("--hard-link-executable", exec); + assertEquals(exec, parameters.getHardLinkExecutable()); } @Test public void testSetCleansingRegexLong() throws Exception { - final String CLEANSING_REGEX = "[0-9]+"; - final Parameters parameters = parse("--cleansing-regex", CLEANSING_REGEX); - assertEquals(CLEANSING_REGEX, parameters.tryGetCleansingRegex().pattern()); + final String cleansingRegex = "[0-9]+"; + final Parameters parameters = parse("--cleansing-regex", cleansingRegex); + assertEquals(cleansingRegex, parameters.tryGetCleansingRegex().pattern()); } @Test(expectedExceptions = RuntimeException.class) public void testSetInvalidCleansingRegex() throws Exception { - final String CLEANSING_REGEX = "[0-9}+"; - parse("--cleansing-regex", CLEANSING_REGEX); + final String cleansingRegex = "[0-9}+"; + parse("--cleansing-regex", cleansingRegex); } @Test public void testSetLocalDataDirLong() throws Exception { - final String LOCAL_DATADIR = ".." + File.separator + "test_it_data"; - final Parameters parameters = parse("--incoming-dir", LOCAL_DATADIR); - assertEquals(createIncomingStore(LOCAL_DATADIR, null, parameters), getIncomingStore(parameters)); + final String localDataDir = ".." + File.separator + "test_it_data"; + final Parameters parameters = parse("--incoming-dir", localDataDir); + assertEquals(createIncomingStore(localDataDir, null, parameters), getIncomingStore(parameters)); } @Test public void testSetLocalTempDirLong() throws Exception { - final String LOCAL_TEMPDIR = "test_it_tmp"; - final Parameters parameters = parse("--buffer-dir", LOCAL_TEMPDIR); - assertEquals(LOCAL_TEMPDIR, parameters.getBufferDirectoryPath().getPath()); + final String localTempDir = "test_it_tmp"; + final Parameters parameters = parse("--buffer-dir", localTempDir); + assertEquals(localTempDir, parameters.getBufferDirectoryPath().getPath()); } @Test @@ -160,9 +160,9 @@ public class ParametersTest @Test public void testSetCheckIntervalLong() throws Exception { - final int CHECK_INTERVAL = 5; - final Parameters parameters = parse("--check-interval", Integer.toString(CHECK_INTERVAL)); - assertEquals(1000 * CHECK_INTERVAL, parameters.getCheckIntervalMillis()); + final int checkInterval = 5; + final Parameters parameters = parse("--check-interval", Integer.toString(checkInterval)); + assertEquals(1000 * checkInterval, parameters.getCheckIntervalMillis()); } @Test(expectedExceptions = RuntimeException.class) @@ -174,17 +174,17 @@ public class ParametersTest @Test public void testSetCheckIntervalShort() throws Exception { - final int CHECK_INTERVAL = 11; - final Parameters parameters = parse("-c", Integer.toString(CHECK_INTERVAL)); - assertEquals(1000 * CHECK_INTERVAL, parameters.getCheckIntervalMillis()); + final int checkInterval = 11; + final Parameters parameters = parse("-c", Integer.toString(checkInterval)); + assertEquals(1000 * checkInterval, parameters.getCheckIntervalMillis()); } @Test public void testSetCheckIntervalInternalLong() throws Exception { - final int CHECK_INTERVAL = 1; - final Parameters parameters = parse("--check-interval-internal", Integer.toString(CHECK_INTERVAL)); - assertEquals(1000 * CHECK_INTERVAL, parameters.getCheckIntervalInternalMillis()); + final int checkInterval = 1; + final Parameters parameters = parse("--check-interval-internal", Integer.toString(checkInterval)); + assertEquals(1000 * checkInterval, parameters.getCheckIntervalInternalMillis()); } @Test @@ -197,17 +197,17 @@ public class ParametersTest @Test public void testSetQuietPeriodLong() throws Exception { - final int QUIET_PERIOD = 6; - final Parameters parameters = parse("--quiet-period", Integer.toString(QUIET_PERIOD)); - assertEquals(1000 * QUIET_PERIOD, parameters.getQuietPeriodMillis()); + final int quietPeriod = 6; + final Parameters parameters = parse("--quiet-period", Integer.toString(quietPeriod)); + assertEquals(1000 * quietPeriod, parameters.getQuietPeriodMillis()); } @Test public void testSetQuietPeriodShort() throws Exception { - final int QUIET_PERIOD = 17; - final Parameters parameters = parse("-q", Integer.toString(QUIET_PERIOD)); - assertEquals(1000 * QUIET_PERIOD, parameters.getQuietPeriodMillis()); + final int quietPeriod = 17; + final Parameters parameters = parse("-q", Integer.toString(quietPeriod)); + assertEquals(1000 * quietPeriod, parameters.getQuietPeriodMillis()); } @Test @@ -227,45 +227,45 @@ public class ParametersTest @Test public void testSetMandatoryOptions() throws Exception { - final String LOCAL_DATADIR = ".." + File.separator + "ldata"; - final String LOCAL_TEMPDIR = "l" + File.separator + "tmp"; - final String REMOTE_DATADIR = "rrr"; + final String localDataDir = ".." + File.separator + "ldata"; + final String localTempDir = "l" + File.separator + "tmp"; + final String remoteDataDir = "rrr"; final Parameters parameters = - parse("--incoming-dir", LOCAL_DATADIR, "--buffer-dir", LOCAL_TEMPDIR, "--outgoing-dir", REMOTE_DATADIR); - assertEquals(createIncomingStore(LOCAL_DATADIR, null, parameters), getIncomingStore(parameters)); - assertEquals(LOCAL_TEMPDIR, parameters.getBufferDirectoryPath().getPath()); - assertEquals(createOutgoingStore(REMOTE_DATADIR, null, parameters), getOutgoingStore(parameters)); + parse("--incoming-dir", localDataDir, "--buffer-dir", localTempDir, "--outgoing-dir", remoteDataDir); + assertEquals(createIncomingStore(localDataDir, null, parameters), getIncomingStore(parameters)); + assertEquals(localTempDir, parameters.getBufferDirectoryPath().getPath()); + assertEquals(createOutgoingStore(remoteDataDir, null, parameters), getOutgoingStore(parameters)); } @Test public void testSetEverything() throws Exception { - final String LOCAL_DATADIR = ".." + File.separator + "ldata"; - final String LOCAL_TEMPDIR = "l" + File.separator + "tmp"; - final String REMOTE_DATADIR = "rrr"; - final String REMOTE_HOST = "myremotehost"; - final int CHECK_INTERVAL = 22; - final int QUIET_PERIOD = 33; - final String REMOTE_INCOMING_HOST = "my-remote-incoming-host"; - final String EXTRA_COPY_DIR = "xxx"; + final String localDataDir = ".." + File.separator + "ldata"; + final String localTempDir = "l" + File.separator + "tmp"; + final String remoteDataDir = "rrr"; + final String remoteHost = "myremotehost"; + final int checkIntervall = 22; + final int quietPeriod = 33; + final String remoteIncomingHost = "my-remote-incoming-host"; + final String extraCopyDir = "xxx"; final Parameters parameters = - parse("--incoming-dir", LOCAL_DATADIR, "--buffer-dir", LOCAL_TEMPDIR, "--outgoing-dir", REMOTE_DATADIR, - "--outgoing-host", REMOTE_HOST, "--check-interval", Integer.toString(CHECK_INTERVAL), - "--quiet-period", Integer.toString(QUIET_PERIOD), "--treat-incoming-as-remote", - "--incoming-host", REMOTE_INCOMING_HOST, "--extra-copy-dir", EXTRA_COPY_DIR, + parse("--incoming-dir", localDataDir, "--buffer-dir", localTempDir, "--outgoing-dir", remoteDataDir, + "--outgoing-host", remoteHost, "--check-interval", Integer.toString(checkIntervall), + "--quiet-period", Integer.toString(quietPeriod), "--treat-incoming-as-remote", + "--incoming-host", remoteIncomingHost, "--extra-copy-dir", extraCopyDir, "--rsync-overwrite"); - IFileStore incomingStoreExpected = createIncomingStore(LOCAL_DATADIR, REMOTE_INCOMING_HOST, parameters); + IFileStore incomingStoreExpected = createIncomingStore(localDataDir, remoteIncomingHost, parameters); IFileStore incomingStore = getIncomingStore(parameters); - IFileStore outgoingStoreExpected = createOutgoingStore(REMOTE_DATADIR, REMOTE_HOST, parameters); + IFileStore outgoingStoreExpected = createOutgoingStore(remoteDataDir, remoteHost, parameters); IFileStore outgoingStore = getOutgoingStore(parameters); assertEquals(incomingStoreExpected, incomingStore); - assertEquals(LOCAL_TEMPDIR, parameters.getBufferDirectoryPath().getPath()); + assertEquals(localTempDir, parameters.getBufferDirectoryPath().getPath()); assertEquals(outgoingStoreExpected, outgoingStore); - assertEquals(EXTRA_COPY_DIR, parameters.tryGetExtraCopyDir().getPath()); - assertEquals(1000 * CHECK_INTERVAL, parameters.getCheckIntervalMillis()); - assertEquals(1000 * QUIET_PERIOD, parameters.getQuietPeriodMillis()); + assertEquals(extraCopyDir, parameters.tryGetExtraCopyDir().getPath()); + assertEquals(1000 * checkIntervall, parameters.getCheckIntervalMillis()); + assertEquals(1000 * quietPeriod, parameters.getQuietPeriodMillis()); assertTrue(incomingStore.isRemote()); assertTrue(parameters.isRsyncOverwrite()); } diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncCopierTest.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncCopierTest.java index baf6e9ef09f66724896d9f4ef742acc25a9622a8..07a7b5589b9962b8ced91226e05ca95a29c9bcd5 100644 --- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncCopierTest.java +++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncCopierTest.java @@ -184,21 +184,21 @@ public class RsyncCopierTest { public void run() { - final long SLEEP_MILLIS = 20; - final int MAX_COUNT = 50; - boolean OK = false; + final long sleepMillis = 20; + final int maxCount = 50; + boolean ok = false; int count = 0; - while (OK == false && count < MAX_COUNT) + while (ok == false && count < maxCount) { ++count; try { - Thread.sleep(SLEEP_MILLIS); + Thread.sleep(sleepMillis); } catch (InterruptedException e) { // Can't happen. } - OK = copier.terminate(); + ok = copier.terminate(); } } })).start();