From 2630f524a1589f646b7b6c02751607b3b8f62cf1 Mon Sep 17 00:00:00 2001 From: brinn <brinn> Date: Tue, 22 Jul 2008 14:24:22 +0000 Subject: [PATCH] fix: avoid breaking the layering structure by accessing Main from RemoteMonitoredMoverFactory SVN: 7400 --- .../java/ch/systemsx/cisd/datamover/Main.java | 17 ++----- .../filesystem/FileStoreSelfTestables.java | 48 +++++++++++++++++++ .../RemoteMonitoredMoverFactory.java | 3 +- 3 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 datamover/source/java/ch/systemsx/cisd/datamover/filesystem/FileStoreSelfTestables.java diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/Main.java b/datamover/source/java/ch/systemsx/cisd/datamover/Main.java index 7fe953a1286..31b376a2964 100644 --- a/datamover/source/java/ch/systemsx/cisd/datamover/Main.java +++ b/datamover/source/java/ch/systemsx/cisd/datamover/Main.java @@ -19,7 +19,6 @@ package ch.systemsx.cisd.datamover; import java.io.File; import java.lang.Thread.UncaughtExceptionHandler; import java.util.ArrayList; -import java.util.List; import java.util.Timer; import org.apache.log4j.Logger; @@ -33,11 +32,11 @@ import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.common.logging.LogInitializer; import ch.systemsx.cisd.common.utilities.BuildAndEnvironmentInfo; import ch.systemsx.cisd.common.utilities.FileUtilities; -import ch.systemsx.cisd.common.utilities.ISelfTestable; import ch.systemsx.cisd.common.utilities.ITerminable; import ch.systemsx.cisd.common.utilities.SystemExit; import ch.systemsx.cisd.common.utilities.TriggeringTimerTask; import ch.systemsx.cisd.datamover.filesystem.FileStoreFactory; +import ch.systemsx.cisd.datamover.filesystem.FileStoreSelfTestables; import ch.systemsx.cisd.datamover.filesystem.FileSysOperationsFactory; import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore; import ch.systemsx.cisd.datamover.filesystem.intf.IFileSysOperationsFactory; @@ -73,8 +72,6 @@ public final class Main } }; - private static final List<ISelfTestable> selfTestables = new ArrayList<ISelfTestable>(); - private static void initLog() { LogInitializer.init(); @@ -125,8 +122,8 @@ public final class Main stores.add(dummyStore); } final IPathCopier copyProcess = factory.getCopier(false); - SelfTest.check(copyProcess, stores.toArray(IFileStore.EMPTY_ARRAY), selfTestables - .toArray(new ISelfTestable[selfTestables.size()])); + SelfTest.check(copyProcess, stores.toArray(IFileStore.EMPTY_ARRAY), + FileStoreSelfTestables.getSelfTestables()); } catch (final HighLevelException e) { System.err.printf(msgStart + " [%s: %s]\n", e.getClass().getSimpleName(), e @@ -177,14 +174,6 @@ public final class Main return file; } - /** - * Adds a self-testable to the list. - */ - public static synchronized void addSelfTestable(ISelfTestable selfTestable) - { - selfTestables.add(selfTestable); - } - public static void main(final String[] args) { initLog(); diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/FileStoreSelfTestables.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/FileStoreSelfTestables.java new file mode 100644 index 00000000000..ba80e15c0b0 --- /dev/null +++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/FileStoreSelfTestables.java @@ -0,0 +1,48 @@ +/* + * Copyright 2008 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.datamover.filesystem; + +import java.util.ArrayList; +import java.util.List; + +import ch.systemsx.cisd.common.utilities.ISelfTestable; + +/** + * {@link ISelfTestable}s to be tested during self test. + * + * @author Bernd Rinn + */ +public class FileStoreSelfTestables +{ + private static final List<ISelfTestable> selfTestables = new ArrayList<ISelfTestable>(); + + /** + * Add a self testable to the list. + */ + static synchronized void addSelfTestable(ISelfTestable selfTestable) + { + selfTestables.add(selfTestable); + } + + /** + * Get the array of self testables to test in self test. + */ + public static synchronized ISelfTestable[] getSelfTestables() + { + return selfTestables.toArray(new ISelfTestable[selfTestables.size()]); + } +} diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/RemoteMonitoredMoverFactory.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/RemoteMonitoredMoverFactory.java index dc3326dc955..1b4d9481afe 100644 --- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/RemoteMonitoredMoverFactory.java +++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/RemoteMonitoredMoverFactory.java @@ -18,7 +18,6 @@ package ch.systemsx.cisd.datamover.filesystem; import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; import ch.systemsx.cisd.common.utilities.IStoreHandler; -import ch.systemsx.cisd.datamover.Main; import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore; import ch.systemsx.cisd.datamover.filesystem.intf.IStoreCopier; import ch.systemsx.cisd.datamover.filesystem.remote.RemotePathMover; @@ -49,7 +48,7 @@ public final class RemoteMonitoredMoverFactory throws ConfigurationFailureException { final IStoreCopier copier = sourceDirectory.getCopier(destinationDirectory); - Main.addSelfTestable(copier); + FileStoreSelfTestables.addSelfTestable(copier); return new RemotePathMover(sourceDirectory, destinationDirectory, copier, parameters); } } -- GitLab