Author: chatellier Date: 2010-01-04 14:22:06 +0000 (Mon, 04 Jan 2010) New Revision: 2867 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java Log: Store only one zip for simulation with common zip file. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2010-01-04 14:01:31 UTC (rev 2866) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2010-01-04 14:22:06 UTC (rev 2867) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2009 Ifremer, Code Lutin + * Copyright (C) 2009-2010 Ifremer, Code Lutin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -285,6 +285,9 @@ String simulationId = job.getId(); SimulationItem simulationItem = job.getItem(); File simulationMonitoringFolder = new File(monitorFolder, simulationId); + if (!simulationMonitoringFolder.exists()) { + simulationMonitoringFolder.mkdirs(); + } File simulationPropertiesFile = new File(simulationMonitoringFolder, PROPERTIES_FILE); if (!simulationPropertiesFile.exists()) { @@ -301,17 +304,34 @@ // zip File zipFile = simulationItem.getSimulationZip(); + try { // original zip must be keeped outside monitoring folder - FileUtils.copyFileToDirectory(zipFile, simulationMonitoringFolder); - simulationProperties.setProperty(PROPERTY_ZIP, zipFile.getName()); + + // for standalone, set it in parent directory + if (simulationItem.isStandaloneSimulationZip()) { + FileUtils.copyFileToDirectory(zipFile, simulationMonitoringFolder); + simulationProperties.setProperty(PROPERTY_ZIP, zipFile.getName()); + } + else { + String shortSimulationId = simulationId.substring(0, simulationId.lastIndexOf('_')); + // zip common to multiples simulations + // saved in monitoring folder at root + File savedZipFile = new File(simulationMonitoringFolder.getParent(), shortSimulationId + ".zip"); + // the first simulation is in charge to save the common zip file + if (simulationItem.getSimulationNumber() == 0) { + FileUtils.copyFile(zipFile, savedZipFile); + } + simulationProperties.setProperty(PROPERTY_ZIP, ".." + File.separator + savedZipFile.getName()); + } + } catch (IOException e) { if (log.isErrorEnabled()) { log.error("Can't copy simulation zip", e); } } - // addtionnal infos + // additionnal infos simulationProperties.setProperty(PROPERTY_STANDALONE, String.valueOf(simulationItem.isStandaloneSimulation())); simulationProperties.setProperty(PROPERTY_LASTSIMULATION, String.valueOf(simulationItem.isLastSimulation()));