Skip to content
Snippets Groups Projects
Commit a4b4fd9e authored by felmer's avatar felmer
Browse files

first review

SVN: 1403
parent e3970f39
No related branches found
No related tags found
No related merge requests found
......@@ -92,12 +92,12 @@ public class CopyActivityMonitor
* Creates a monitor.
*
* @param destinationDirectory The directory to monitor for write access.
* @param operations The provider to get the {@link IPathLastChangedChecker} from.
* @param factory The provider to get the {@link IPathLastChangedChecker} from.
* @param copyProcess The {@link ITerminable} representing the copy process. This will get terminated if the copy
* process gets stuck.
* @param timingParameters The {@link ITimingParameters} to get the check interval and the inactivity period from.
*/
public CopyActivityMonitor(File destinationDirectory, IFileSysOperationsFactory operations, ITerminable copyProcess,
public CopyActivityMonitor(File destinationDirectory, IFileSysOperationsFactory factory, ITerminable copyProcess,
ITimingParameters timingParameters)
{
this.monitoredPathLastChecked = new AtomicLong(0);
......@@ -105,12 +105,12 @@ public class CopyActivityMonitor
this.pathToBeCopied = new AtomicReference<File>(null);
assert destinationDirectory != null;
assert operations != null;
assert factory != null;
assert copyProcess != null;
assert timingParameters != null;
this.destinationDirectory = destinationDirectory;
this.checker = operations.getChecker();
this.checker = factory.getChecker();
this.checkIntervallMillis = timingParameters.getCheckIntervalMillis();
assert this.checker != null;
......
......@@ -29,7 +29,7 @@ public interface IPathImmutableCopier
* Creates copy of <code>file</code> in <code>destinationDirectory</code> which should not be modified. Can use
* hard links if it is possible.
*
* @return pointer to the created file or null if operation failed
* @return pointer to the created file or <code>null</code> if operation failed
*/
File tryCopy(File file, File destinationDirectory);
}
......@@ -80,7 +80,7 @@ public class Main
}
IPathImmutableCopier copier = null;
if (!OSUtilities.isWindows())
if (OSUtilities.isWindows() == false)
{
copier = RecursiveHardLinkMaker.tryCreate();
if (copier != null)
......@@ -218,7 +218,7 @@ public class Main
private static void startupServer(final Parameters parameters)
{
selfTest(parameters);
final IFileSysOperationsFactory operations = new IFileSysOperationsFactory()
final IFileSysOperationsFactory factory = new IFileSysOperationsFactory()
{
public IPathLastChangedChecker getChecker()
{
......@@ -241,7 +241,7 @@ public class Main
}
};
final MonitorStarter starter = new MonitorStarter(parameters, operations);
final MonitorStarter starter = new MonitorStarter(parameters, factory);
starter.start();
}
......
......@@ -45,7 +45,7 @@ public class MonitorStarter
private final Parameters parameters;
private final IFileSysOperationsFactory operations;
private final IFileSysOperationsFactory factory;
private final File inProgressDir; // here data are copied from incoming
......@@ -53,10 +53,10 @@ public class MonitorStarter
private final File tempDir;// auxiliary directory used if we need to make a copy of incoming data
public MonitorStarter(Parameters parameters, IFileSysOperationsFactory operations)
public MonitorStarter(Parameters parameters, IFileSysOperationsFactory factory)
{
this.parameters = parameters;
this.operations = operations;
this.factory = factory;
File buffer = parameters.getBufferStore().getPath();
this.inProgressDir = ensureDirectoryExists(buffer, LOCAL_IN_PROGRESS_DIR);
this.readyToMoveDir = ensureDirectoryExists(buffer, LOCAL_READY_TO_MOVE_DIR);
......@@ -88,7 +88,7 @@ public class MonitorStarter
final DirectoryScanningTimerTask movingTask =
new DirectoryScanningTimerTask(incomingStore.getPath(), new QuietPeriodFileFilter(parameters,
operations), pathHandler);
factory), pathHandler);
final Timer movingTimer = new Timer("Mover of Incomming Data");
schedule(movingTimer, movingTask, 0, parameters.getCheckIntervalMillis(), parameters.getTreatIncomingAsRemote());
}
......@@ -98,7 +98,7 @@ public class MonitorStarter
{
IPathHandler moveFromIncoming = createPathMoverToLocal(sourceHost, inProgressDir);
IPathHandler processMoved =
createProcessMovedFile(readyToMoveDir, tempDir, parameters.tryGetExtraCopyStore(), operations);
createProcessMovedFile(readyToMoveDir, tempDir, parameters.tryGetExtraCopyStore(), factory);
IPathHandler moveAndProcess = createMoveAndProcess(moveFromIncoming, inProgressDir, processMoved);
IPathHandler manualInterventionMover = createPathMoverToLocal(sourceHost, manualInterventionDir);
CleansingPathHandlerDecorator cleansingOrMover =
......@@ -107,14 +107,14 @@ public class MonitorStarter
}
private static IPathHandler createProcessMovedFile(File destDirectory, File tempDir,
FileStore extraCopyStoreOrNull, IFileSysOperationsFactory operations)
FileStore extraCopyStoreOrNull, IFileSysOperationsFactory factory)
{
FileFilter cleanMarkers = new NamePrefixFileFilter(Constants.IS_FINISHED_PREFIX, true);
IPathHandler moveToDone = new IntraFSPathMover(destDirectory);
IPathHandler processHandler;
if (extraCopyStoreOrNull != null)
{
IPathImmutableCopier copier = operations.getImmutableCopier();
IPathImmutableCopier copier = factory.getImmutableCopier();
IPathHandler extraCopyHandler = createExtraCopyHandler(tempDir, extraCopyStoreOrNull.getPath(), copier);
processHandler = combineHandlers(extraCopyHandler, moveToDone);
} else
......@@ -151,7 +151,9 @@ public class MonitorStarter
{
File copiedFile = copier.tryCopy(path, tempDir);
if (copiedFile == null)
{
return false;
}
return moveToFinal.handle(copiedFile);
}
};
......@@ -193,9 +195,9 @@ public class MonitorStarter
private IPathHandler createRemotePathMover(String sourceHost, File destinationDirectory, String destinationHost)
{
IPathCopier copier = operations.getCopier(destinationDirectory);
CopyActivityMonitor monitor = new CopyActivityMonitor(destinationDirectory, operations, copier, parameters);
IPathRemover remover = operations.getRemover();
IPathCopier copier = factory.getCopier(destinationDirectory);
CopyActivityMonitor monitor = new CopyActivityMonitor(destinationDirectory, factory, copier, parameters);
IPathRemover remover = factory.getRemover();
return new RemotePathMover(destinationDirectory, destinationHost, monitor, remover, copier, sourceHost,
parameters);
}
......@@ -236,9 +238,9 @@ public class MonitorStarter
private static File ensureDirectoryExists(File dir, String newDirName)
{
File dataDir = new File(dir, newDirName);
if (!dataDir.exists())
if (dataDir.exists() == false)
{
if (!dataDir.mkdir())
if (dataDir.mkdir() == false)
throw new EnvironmentFailureException("Could not create local data directory " + dataDir);
}
return dataDir;
......
......@@ -35,16 +35,16 @@ public class QuietPeriodFileFilter implements FileFilter
* Creates a <var>QuietPeriodFileFilter</var>.
*
* @param timingParameters The timing paramter object to get the quiet period from.
* @param operations The operations object to ask for the implementation to use to check when a pathname was
* @param factory The factory object to create implementation to use to check when a pathname was
* changed.
*/
public QuietPeriodFileFilter(ITimingParameters timingParameters, IFileSysOperationsFactory operations)
public QuietPeriodFileFilter(ITimingParameters timingParameters, IFileSysOperationsFactory factory)
{
assert timingParameters != null;
assert operations != null;
assert factory != null;
quietPeriodMillis = timingParameters.getQuietPeriodMillis();
checker = operations.getChecker();
checker = factory.getChecker();
assert quietPeriodMillis > 0;
assert checker != null;
......
......@@ -59,7 +59,9 @@ public class RecursiveHardLinkMaker implements IPathImmutableCopier
{
File lnExec = OSUtilities.findExecutable(HARD_LINK_EXEC);
if (lnExec == null)
{
return null;
}
return new RecursiveHardLinkMaker(lnExec.getAbsolutePath());
}
......@@ -75,7 +77,7 @@ public class RecursiveHardLinkMaker implements IPathImmutableCopier
operationLog.info(String.format("Creating a hard link copy of '%s' in '%s'.", resource.getPath(),
destinationDirectory.getPath()));
String resourceParent = resource.getParentFile().getAbsolutePath();
assert !resourceParent.equals(destinationDirectory.getAbsolutePath());
assert resourceParent.equals(destinationDirectory.getAbsolutePath()) == false;
return tryMakeCopy(resource, destinationDirectory);
}
......@@ -88,11 +90,15 @@ public class RecursiveHardLinkMaker implements IPathImmutableCopier
{
File dir = tryCreateDir(resource.getName(), destinationDirectory);
if (dir == null)
{
return null;
}
for (File file : resource.listFiles())
{
if (tryMakeCopy(file, dir) == null)
{
return null;
}
}
return dir;
}
......@@ -102,7 +108,7 @@ public class RecursiveHardLinkMaker implements IPathImmutableCopier
{
File dir = new File(destDir, name);
boolean ok = dir.mkdir();
if (!ok)
if (ok == false)
{
if (dir.isDirectory())
{
......
......@@ -78,14 +78,14 @@ public class CopyActivityMonitorTest
}
}
private final class MyFileSystemOperations implements IFileSysOperationsFactory
private final class MyFileSystemFactory implements IFileSysOperationsFactory
{
/**
*
*/
private final IPathLastChangedChecker checker;
private MyFileSystemOperations(IPathLastChangedChecker checker)
private MyFileSystemFactory(IPathLastChangedChecker checker)
{
this.checker = checker;
}
......@@ -192,11 +192,11 @@ public class CopyActivityMonitorTest
public void testHappyPath() throws Throwable
{
final IPathLastChangedChecker checker = new HappyPathLastChangedChecker();
final IFileSysOperationsFactory operations = new MyFileSystemOperations(checker);
final IFileSysOperationsFactory factory = new MyFileSystemFactory(checker);
final ITerminable dummyTerminable = new DummyTerminable();
final ITimingParameters parameters = new MyTimingParameters(0);
final CopyActivityMonitor monitor =
new CopyActivityMonitor(workingDirectory, operations, dummyTerminable, parameters);
new CopyActivityMonitor(workingDirectory, factory, dummyTerminable, parameters);
final File directory = new File(workingDirectory, "some-directory");
directory.mkdir();
directory.deleteOnExit();
......@@ -210,11 +210,11 @@ public class CopyActivityMonitorTest
public void testCopyStalled() throws Throwable
{
final IPathLastChangedChecker checker = new PathLastChangedCheckerStalled();
final IFileSysOperationsFactory operations = new MyFileSystemOperations(checker);
final IFileSysOperationsFactory factory = new MyFileSystemFactory(checker);
final MockTerminable copyProcess = new MockTerminable();
final ITimingParameters parameters = new MyTimingParameters(0);
final CopyActivityMonitor monitor =
new CopyActivityMonitor(workingDirectory, operations, copyProcess, parameters);
new CopyActivityMonitor(workingDirectory, factory, copyProcess, parameters);
final File file = new File(workingDirectory, "some-directory");
file.mkdir();
monitor.start(file);
......@@ -256,11 +256,11 @@ public class CopyActivityMonitorTest
public void testCopySeemsStalledButActuallyIsFine() throws Throwable
{
final IPathLastChangedChecker checker = new SimulateShortInterruptionChangedChecker();
final IFileSysOperationsFactory operations = new MyFileSystemOperations(checker);
final IFileSysOperationsFactory factory = new MyFileSystemFactory(checker);
final MockTerminable copyProcess = new MockTerminable();
final ITimingParameters parameters = new MyTimingParameters(0);
final CopyActivityMonitor monitor =
new CopyActivityMonitor(workingDirectory, operations, copyProcess, parameters);
new CopyActivityMonitor(workingDirectory, factory, copyProcess, parameters);
final File file = new File(workingDirectory, "some-directory");
file.mkdir();
monitor.start(file);
......@@ -285,11 +285,11 @@ public class CopyActivityMonitorTest
LogMonitoringAppender.addAppender(LogCategory.OPERATION, "Activity monitor got terminated");
LogFactory.getLogger(LogCategory.OPERATION, CopyActivityMonitor.class).addAppender(appender);
final PathLastChangedCheckerStuck checker = new PathLastChangedCheckerStuck();
final IFileSysOperationsFactory operations = new MyFileSystemOperations(checker);
final IFileSysOperationsFactory factory = new MyFileSystemFactory(checker);
final MockTerminable copyProcess = new MockTerminable();
final ITimingParameters parameters = new MyTimingParameters(0);
final CopyActivityMonitor monitor =
new CopyActivityMonitor(workingDirectory, operations, copyProcess, parameters);
new CopyActivityMonitor(workingDirectory, factory, copyProcess, parameters);
final File directory = new File(workingDirectory, "some-directory");
directory.mkdir();
directory.deleteOnExit();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment