r3633 - in branches/4.1: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/datastore src/main/java/fr/ifremer/isisfish/mexico src/main/java/fr/ifremer/isisfish/simulator src/main/java/fr/ifremer/isisfish/simulator/launcher src/main/java/fr/ifremer/isisfish/simulator/sensitivity src/main/java/fr/ifremer/isisfish/ui/input src/main/java/fr/ifremer/isisfish/ui/models/common src/main/java/fr/ifremer/isisfish/ui/result src/main/java/fr/ifremer/isisfish/ui/script src/main/ja
Author: echatellier Date: 2012-03-05 11:52:26 +0100 (Mon, 05 Mar 2012) New Revision: 3633 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3633 Log: Merge trunk into current branche Modified: branches/4.1/ branches/4.1/src/main/java/fr/ifremer/isisfish/IsisConfig.java branches/4.1/src/main/java/fr/ifremer/isisfish/IsisFish.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java branches/4.1/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx branches/4.1/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java branches/4.1/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java branches/4.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java branches/4.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx branches/4.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx branches/4.1/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java branches/4.1/src/main/java/fr/ifremer/isisfish/util/ssh/SSHUtils.java branches/4.1/src/site/resources/images/isis-simulation.png branches/4.1/src/test/java/fr/ifremer/isisfish/AbstractIsisFishTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ExportStorageTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ScriptStorageTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulatorStorageTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/entity/PersistenceTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java Property changes on: branches/4.1 ___________________________________________________________________ Modified: svn:mergeinfo - + /trunk:3601-3632 Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -918,7 +918,7 @@ /** Serveur accessible par ssh : user home directory */ SIMULATOR_SSH_USER_HOME("simulation.ssh.userhome", n_("isisfish.config.main.simulation.ssh.userhome.description"), ""), /** Serveur accessible par ssh : remote data path */ - SIMULATOR_SSH_DATAPATH("simulation.ssh.datapath", n_("isisfish.config.main.simulation.ssh.datapath.description"), "isis-fish" + majorVersion.toString() + "/isis-database"), + SIMULATOR_SSH_DATAPATH("simulation.ssh.datapath", n_("isisfish.config.main.simulation.ssh.datapath.description"), "isis-fish-" + majorVersion.toString() + "/isis-database"), /** Serveur accessible par ssh : remote isis home install */ SIMULATOR_SSH_ISIS_HOME("simulation.ssh.isis.home", n_("isisfish.config.main.simulation.ssh.isis.home.description"), "/home3/caparmor/poussin/isis-fish-" + IsisConfig.getApiVersion()), /** Serveur accessible par ssh : remote tmp path */ Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/IsisFish.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/IsisFish.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/IsisFish.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2005 - 2011 Ifremer, CodeLutin, Chatellier Eric + * Copyright (C) 2005 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -36,6 +36,7 @@ import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; +import java.util.Collection; import java.util.List; import javax.imageio.ImageIO; @@ -46,6 +47,9 @@ import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.filefilter.AbstractFileFilter; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; @@ -59,14 +63,14 @@ import com.bbn.openmap.MapBean; import fr.ifremer.isisfish.cron.CronService; -import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.FormuleStorage; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.ScriptStorage; +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.SimulatorStorage; import fr.ifremer.isisfish.simulator.launcher.SimulationService; @@ -142,6 +146,7 @@ try { initVCS(); initCommunityVCS(); + checkDuplicatedFiles(); } catch (Exception eee) { log.warn(_("Error during vcs initialisation"), eee); } @@ -532,6 +537,49 @@ } /** + * Look for duplicated file name in official repository and community + * repository and rename duplicated in community repository. + */ + protected static void checkDuplicatedFiles() { + + long before = System.currentTimeMillis(); + + // get official file list + Collection<File> offFiles = FileUtils.listFiles(IsisFish.config.getDatabaseDirectory(), + new AbstractFileFilter() { + @Override + public boolean accept(File dir, String name) { + return name.endsWith(".java"); + } + }, + new AbstractFileFilter() { + @Override + public boolean accept(File dir, String name) { + // exclude simulations directory (can take huge time) + return !name.equals(SimulationStorage.SIMULATION_PATH); + } + }); + + // compare it with community repo + for (File offFile : offFiles) { + File comFile = new File(IsisFish.config.getCommunityDatabaseDirectory() + + StringUtils.removeStart(offFile.getAbsolutePath(), IsisFish.config.getDatabaseDirectory().getAbsolutePath())); + if (comFile.isFile()) { + if (log.isWarnEnabled()) { + log.warn("Found file collision for " + comFile.getAbsolutePath()); + } + File newFile = new File(comFile.getParentFile(), "Duplicated_" + comFile.getName()); + comFile.renameTo(newFile); + } + } + + if (log.isDebugEnabled()) { + long after = System.currentTimeMillis(); + log.debug("Check corrumpted file in " + (after - before) + " ms"); + } + } + + /** * Display dialog with files list, and specifique label. * * @param dialogTitle dialog title Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -27,11 +27,14 @@ import java.io.File; import java.io.IOException; +import java.util.Arrays; import java.util.Collections; +import java.util.Iterator; import java.util.List; import org.nuiton.util.FileUtil; +import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishRuntimeException; /** @@ -42,6 +45,7 @@ * {@link fr.ifremer.isisfish.datastore.ExportStorage}, * {@link fr.ifremer.isisfish.datastore.SimulationPlanStorage}, * {@link fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage} + * {@link fr.ifremer.isisfish.datastore.SensitivityExportStorage} * * Created: 21 janv. 2006 15:20:24 * @@ -54,6 +58,53 @@ public abstract class CodeSourceStorage extends VersionStorage { /** + * Location enum to look for script in official repository or + * community directory. + * + * Implements iterable to be used in JavaFileManager. + */ + public static enum Location implements Iterable<File> { + OFFICIAL(IsisFish.config.getDatabaseDirectory()), + COMMUNITY(IsisFish.config.getCommunityDatabaseDirectory()), + ALL(IsisFish.config.getDatabaseDirectory(), IsisFish.config.getCommunityDatabaseDirectory()); + + protected File[] directory; + private Location(File... directory) { + this.directory = directory; + } + + public File[] getDirectories() { + return directory; + } + + public void setDirectory(File... directory) { + this.directory = directory; + } + + /* + * @see java.lang.Iterable#iterator() + */ + @Override + public Iterator<File> iterator() { + List<File> files = Arrays.asList(directory); + return files.iterator(); + } + } + + /** + * Get non empty location. + * + * @param location current location (if empty, return {@link Location#All}. + */ + protected static Location[] nonEmptyLocation(Location... location) { + Location[] locs = location; + if (locs == null || locs.length == 0) { + locs = Location.values(); + } + return locs; + } + + /** * Le nom de la classe sans le package. */ protected String name = null; Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2005 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -65,7 +65,7 @@ public static final String EXPORT_TEMPLATE = "templates/script/export.ftl"; @SuppressWarnings("unchecked") - private static Map<String, ExportStorage> scriptsCache = (Map<String, ExportStorage>) new ReferenceMap(); + private static Map<String, ExportStorage> exportCache = (Map<String, ExportStorage>) new ReferenceMap(); /** * Constructeur. @@ -115,34 +115,38 @@ * Retourne le storage pour l'export demandée * * @param name le nom de l'export souhaitée + * @param location location to open storage file * @return Le storage pour l'export */ - public static ExportStorage getExport(String name) { - String cacheName = getContextDatabaseCacheKey(name); - ExportStorage result = scriptsCache.get(cacheName); + public static ExportStorage getExport(String name, Location... location) { + ExportStorage result = exportCache.get(name); if (result == null) { - result = new ExportStorage(getContextDatabaseDirectory(), - getExportDirectory(), name); - scriptsCache.put(cacheName, result); + Location[] locs = nonEmptyLocation(location); + for (int i = 0; i < locs.length && result == null; i++) { + Location loc = locs[i]; + for (File dir : loc.getDirectories()) { + ExportStorage storage = new ExportStorage(dir, new File(dir, EXPORT_PATH), name); + if (storage.getFile().isFile()) { + result = storage; + exportCache.put(name, result); + } + } + } } return result; } - + /** - * Retourne le storage pour l'export demandée - * - * @param name le nom de l'export souhaitée - * @return Le storage pour l'export + * Create new export. + * + * @param name new export to create + * @param location location to create storage file + * @return new export storage */ - public static ExportStorage getCommunityExport(String name) { - String cacheName = getCommunityDatabaseCacheKey(name); - ExportStorage result = scriptsCache.get(cacheName); - if (result == null) { - result = new ExportStorage(getCommunityDatabaseDirectory(), - getCommunityExportDirectory(), name); - scriptsCache.put(cacheName, result); - } - return result; + public static ExportStorage createExport(String name, Location location) { + File dir = location.getDirectories()[0]; + ExportStorage storage = new ExportStorage(dir, new File(dir, EXPORT_PATH), name); + return storage; } /** Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2005 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2005 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -163,18 +163,16 @@ @Override public void rename(String toName) throws StorageException { try { - String cacheName = getContextDatabaseCacheKey(getName()); - regions.remove(cacheName); + regions.remove(getName()); super.rename(toName); TopiaContext tx = getStorage().beginTransaction(); FisheryRegion region = getFisheryRegion(tx); region.setName(toName); tx.commitTransaction(); tx.closeContext(); - - cacheName = getContextDatabaseCacheKey(toName); - regions.put(cacheName, this); + regions.put(toName, this); + // add storage modification event fireDataChanged(new StorageChangeEvent(this)); @@ -222,8 +220,7 @@ * est retourné */ static public RegionStorage getRegion(String name) { - String cacheName = getContextDatabaseCacheKey(name); - RegionStorage result = regions.get(cacheName); + RegionStorage result = regions.get(name); if (result == null) { // recherche du repertoire de la region en fonction de la config File directory = null; @@ -243,7 +240,7 @@ if (directory.exists()) { result = new RegionStorage(directory, name); - regions.put(cacheName, result); + regions.put(name, result); } } return result; @@ -291,8 +288,7 @@ throw new StorageException("Can't create new Region", eee); } - String cacheName = getContextDatabaseCacheKey(name); - regions.put(cacheName, result); + regions.put(name, result); // add storage modification event fireDataChanged(new StorageChangeEvent(result)); @@ -310,8 +306,7 @@ // add storage modification event fireDataChanged(new StorageChangeEvent(this)); - String cacheName = getContextDatabaseCacheKey(getName()); - regions.remove(cacheName); + regions.remove(getName()); } /** Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2005 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -121,34 +121,39 @@ * Retourne le storage pour la regle demandée * * @param name le nom de la regle souhaitée + * @param location location to open storage file * @return Le storage pour la regle */ - static public RuleStorage getRule(String name) { - String cacheName = getContextDatabaseCacheKey(name); - RuleStorage result = rulesCache.get(cacheName); + static public RuleStorage getRule(String name, Location... location) { + RuleStorage result = rulesCache.get(name); if (result == null) { - result = new RuleStorage(getContextDatabaseDirectory(), - getRuleDirectory(), name); - rulesCache.put(cacheName, result); + Location[] locs = nonEmptyLocation(location); + for (int i = 0; i < locs.length && result == null; i++) { + Location loc = locs[i]; + for (File dir : loc.getDirectories()) { + RuleStorage storage = new RuleStorage(dir, new File(dir, RULE_PATH), name); + File sFile = storage.getFile(); + if (sFile.isFile()) { + result = storage; + rulesCache.put(name, result); + } + } + } } return result; } /** - * Retourne le storage pour la regle demandée - * - * @param name le nom de la regle souhaitée - * @return Le storage pour la regle + * Create new rule. + * + * @param name new rule to create + * @param location location to rule storage file + * @return new rule storage */ - static public RuleStorage getCommunityRule(String name) { - String cacheName = getCommunityDatabaseCacheKey(name); - RuleStorage result = rulesCache.get(cacheName); - if (result == null) { - result = new RuleStorage(getCommunityDatabaseDirectory(), - getCommunityRuleDirectory(), name); - rulesCache.put(cacheName, result); - } - return result; + public static RuleStorage createRule(String name, Location location) { + File dir = location.getDirectories()[0]; + RuleStorage storage = new RuleStorage(dir, new File(dir, RULE_PATH), name); + return storage; } /** Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2005 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -105,34 +105,38 @@ * Retourne le storage pour la regle demandée * * @param name le nom de la regle souhaitée + * @param location location to open storage file * @return Le storage pour la regle */ - static public ScriptStorage getScript(String name) { - String cacheName = getContextDatabaseCacheKey(name); - ScriptStorage result = scriptsCache.get(cacheName); + static public ScriptStorage getScript(String name, Location... location) { + ScriptStorage result = scriptsCache.get(name); if (result == null) { - result = new ScriptStorage(getContextDatabaseDirectory(), - getScriptDirectory(), name); - scriptsCache.put(cacheName, result); + Location[] locs = nonEmptyLocation(location); + for (int i = 0; i < locs.length && result == null; i++) { + Location loc = locs[i]; + for (File dir : loc.getDirectories()) { + ScriptStorage storage = new ScriptStorage(dir, new File(dir, SCRIPT_PATH), name); + if (storage.getFile().isFile()) { + result = storage; + scriptsCache.put(name, result); + } + } + } } return result; } - + /** - * Retourne le storage pour la regle demandée + * Create new script. * - * @param name le nom de la regle souhaitée - * @return Le storage pour la regle + * @param name new script to create + * @param location location to script storage file + * @return new rule script */ - static public ScriptStorage getCommunityScript(String name) { - String cacheName = getCommunityDatabaseCacheKey(name); - ScriptStorage result = scriptsCache.get(cacheName); - if (result == null) { - result = new ScriptStorage(getCommunityDatabaseDirectory(), - getCommunityScriptDirectory(), name); - scriptsCache.put(cacheName, result); - } - return result; + public static ScriptStorage createScript(String name, Location location) { + File dir = location.getDirectories()[0]; + ScriptStorage storage = new ScriptStorage(dir, new File(dir, SCRIPT_PATH), name); + return storage; } static public void checkout() throws VCSException { Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric + * Copyright (C) 2009 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -117,32 +117,38 @@ * Retourne le storage pour le calculateur demandé. * * @param name le nom du calculateur souhaité + * @param location location to open storage file * @return Le {@link SensitivityAnalysisStorage} pour le calculateur */ - public static SensitivityAnalysisStorage getSensitivityAnalysis(String name) { - String cacheName = getContextDatabaseCacheKey(name); - SensitivityAnalysisStorage result = sensitivityCache.get(cacheName); + static public SensitivityAnalysisStorage getSensitivityAnalysis(String name, Location... location) { + SensitivityAnalysisStorage result = sensitivityCache.get(name); if (result == null) { - result = new SensitivityAnalysisStorage(getContextDatabaseDirectory(), getSensitivityAnalysisDirectory(), name); - sensitivityCache.put(cacheName, result); + Location[] locs = nonEmptyLocation(location); + for (int i = 0; i < locs.length && result == null; i++) { + Location loc = locs[i]; + for (File dir : loc.getDirectories()) { + SensitivityAnalysisStorage storage = new SensitivityAnalysisStorage(dir, new File(dir, SENSITIVITY_ANALYSIS_PATH), name); + if (storage.getFile().isFile()) { + result = storage; + sensitivityCache.put(name, result); + } + } + } } return result; } - + /** - * Retourne le storage pour le calculateur demandé. - * - * @param name le nom du calculateur souhaité - * @return Le {@link SensitivityAnalysisStorage} pour le calculateur + * Create new sensitivity analysis. + * + * @param name new sensitivity analysis to create + * @param location location to sensitivity analysis storage file + * @return new sensitivity analysis storage */ - public static SensitivityAnalysisStorage getCommunitySensitivityAnalysis(String name) { - String cacheName = getCommunityDatabaseCacheKey(name); - SensitivityAnalysisStorage result = sensitivityCache.get(cacheName); - if (result == null) { - result = new SensitivityAnalysisStorage(getCommunityDatabaseDirectory(), getCommunitySensitivityAnalysisDirectory(), name); - sensitivityCache.put(cacheName, result); - } - return result; + public static SensitivityAnalysisStorage createSensitivityAnalysis(String name, Location location) { + File dir = location.getDirectories()[0]; + SensitivityAnalysisStorage storage = new SensitivityAnalysisStorage(dir, new File(dir, SENSITIVITY_ANALYSIS_PATH), name); + return storage; } /** Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -107,34 +107,38 @@ * Retourne le storage pour l'export demandé. * * @param name le nom de la export souhaitée + * @param location location to open storage file * @return Le storage pour l'export */ - public static SensitivityExportStorage getSensitivityExport(String name) { - String cacheName = getContextDatabaseCacheKey(name); - SensitivityExportStorage result = sensitivityExportsCache.get(cacheName); + public static SensitivityExportStorage getSensitivityExport(String name, Location... location) { + SensitivityExportStorage result = sensitivityExportsCache.get(name); if (result == null) { - result = new SensitivityExportStorage(getContextDatabaseDirectory(), - getSensitivityExportDirectory(), name); - sensitivityExportsCache.put(cacheName, result); + Location[] locs = nonEmptyLocation(location); + for (int i = 0; i < locs.length && result == null; i++) { + Location loc = locs[i]; + for (File dir : loc.getDirectories()) { + SensitivityExportStorage storage = new SensitivityExportStorage(dir, new File(dir, SENSITIVITY_EXPORT_PATH), name); + if (storage.getFile().isFile()) { + result = storage; + sensitivityExportsCache.put(name, result); + } + } + } } return result; } /** - * Retourne le storage pour l'export demandé. - * - * @param name le nom de l'export souhaitée - * @return Le storage pour l'export + * Create new sensitivity export. + * + * @param name new sensitivity export to create + * @param location location to sensitivity export storage file + * @return new sensitivity export storage */ - public static SensitivityExportStorage getCommunitySensitivityExport(String name) { - String cacheName = getCommunityDatabaseCacheKey(name); - SensitivityExportStorage result = sensitivityExportsCache.get(cacheName); - if (result == null) { - result = new SensitivityExportStorage(getCommunityDatabaseDirectory(), - getCommunitySensitivityExportDirectory(), name); - sensitivityExportsCache.put(cacheName, result); - } - return result; + public static SensitivityExportStorage createSensitivityExport(String name, Location location) { + File dir = location.getDirectories()[0]; + SensitivityExportStorage storage = new SensitivityExportStorage(dir, new File(dir, SENSITIVITY_EXPORT_PATH), name); + return storage; } /** Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2005 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -118,34 +118,38 @@ * Retourne le storage pour le plan demandé. * * @param name le nom du plan souhaité + * @param location location to open storage file * @return Le storage pour le plan */ - static public SimulationPlanStorage getSimulationPlan(String name) { - String cacheName = getContextDatabaseCacheKey(name); - SimulationPlanStorage result = plansCache.get(cacheName); + static public SimulationPlanStorage getSimulationPlan(String name, Location... location) { + SimulationPlanStorage result = plansCache.get(name); if (result == null) { - result = new SimulationPlanStorage(getContextDatabaseDirectory(), - getSimulationPlanDirectory(), name); - plansCache.put(cacheName, result); + Location[] locs = nonEmptyLocation(location); + for (int i = 0; i < locs.length && result == null; i++) { + Location loc = locs[i]; + for (File dir : loc.getDirectories()) { + SimulationPlanStorage storage = new SimulationPlanStorage(dir, new File(dir, SIMULATION_PLAN_PATH), name); + if (storage.getFile().isFile()) { + result = storage; + plansCache.put(name, result); + } + } + } } return result; } - + /** - * Retourne le storage pour le plan demandé. - * - * @param name le nom du plan souhaité - * @return Le storage pour le plan + * Create new simulation plan. + * + * @param name new simulation plan to create + * @param location location to simulation plan storage file + * @return new simulation plan storage */ - static public SimulationPlanStorage getCommunitySimulationPlan(String name) { - String cacheName = getCommunityDatabaseCacheKey(name); - SimulationPlanStorage result = plansCache.get(cacheName); - if (result == null) { - result = new SimulationPlanStorage(getCommunityDatabaseDirectory(), - getCommunitySimulationPlanDirectory(), name); - plansCache.put(cacheName, result); - } - return result; + public static SimulationPlanStorage createSimulationPlan(String name, Location location) { + File dir = location.getDirectories()[0]; + SimulationPlanStorage storage = new SimulationPlanStorage(dir, new File(dir, SIMULATION_PLAN_PATH), name); + return storage; } /** Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -246,7 +246,7 @@ * * @return simulation control file */ - protected static File getSimulationControlFile(String id) { + public static File getSimulationControlFile(String id) { File result = new File(getSimulationDirectory(id), CONTROL_FILENAME); return result; } @@ -462,6 +462,9 @@ * @return true si la simulation existe déjà */ public static boolean localyExists(String name) { + + // FIXME echatellier 20120229 this method can tak huge time + // to replace with Directory existence return getSimulationNames().contains(name); } Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2005 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -105,36 +105,38 @@ * {@link SimulatorStorage} is cached by name. * * @param name le nom de la regle souhaitée + * @param location location to open storage file * @return Le storage pour la regle */ - static public SimulatorStorage getSimulator(String name) { - String cacheName = getContextDatabaseCacheKey(name); - SimulatorStorage result = simulatorsCache.get(cacheName); + static public SimulatorStorage getSimulator(String name, Location... location) { + SimulatorStorage result = simulatorsCache.get(name); if (result == null) { - result = new SimulatorStorage(getContextDatabaseDirectory(), - getSimulatorDirectory(), name); - simulatorsCache.put(cacheName, result); + Location[] locs = nonEmptyLocation(location); + for (int i = 0; i < locs.length && result == null; i++) { + Location loc = locs[i]; + for (File dir : loc.getDirectories()) { + SimulatorStorage storage = new SimulatorStorage(dir, new File(dir, SIMULATOR_PATH), name); + if (storage.getFile().isFile()) { + result = storage; + simulatorsCache.put(name, result); + } + } + } } return result; } - + /** - * Retourne le storage pour le simulateur demandée. + * Create new simulation plan. * - * {@link SimulatorStorage} is cached by name. - * - * @param name le nom de la regle souhaitée - * @return Le storage pour la regle + * @param name new simulation plan to create + * @param location location to simulation plan storage file + * @return new simulation plan storage */ - static public SimulatorStorage getCommunitySimulator(String name) { - String cacheName = getContextDatabaseCacheKey(name); - SimulatorStorage result = simulatorsCache.get(cacheName); - if (result == null) { - result = new SimulatorStorage(getCommunityDatabaseDirectory(), - getCommunitySimulatorDirectory(), name); - simulatorsCache.put(cacheName, result); - } - return result; + public static SimulatorStorage createSimulator(String name, Location location) { + File dir = location.getDirectories()[0]; + SimulatorStorage storage = new SimulatorStorage(dir, new File(dir, SIMULATOR_PATH), name); + return storage; } static public void checkout() throws VCSException { Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -106,30 +106,6 @@ } /** - * Get cache storage key to use depending on context storage used. - * - * Two simulation must have their own cache. - * - * @return context cache key - */ - protected static String getContextDatabaseCacheKey(String key) { - String result = getContextDatabaseDirectory().getAbsolutePath() + key; - return result; - } - - /** - * Get cache storage key to use depending on context storage used. - * - * Two simulation must have their own cache and community scripts too. - * - * @return context cache key - */ - protected static String getCommunityDatabaseCacheKey(String key) { - String result = getCommunityDatabaseDirectory().getAbsolutePath() + key; - return result; - } - - /** * Get VCS instance for storage file. * * @return vcs instance Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -155,7 +155,7 @@ Source xmlSource=new SAXSource(new InputSource(new ByteArrayInputStream(unformattedXml.getBytes("UTF-8")))); StreamResult res = new StreamResult(new ByteArrayOutputStream()); serializer.transform(xmlSource, res); - return new String(((ByteArrayOutputStream)res.getOutputStream()).toByteArray()); + return new String(((ByteArrayOutputStream)res.getOutputStream()).toByteArray(), "UTF-8"); } catch (Exception e) { throw new IsisFishRuntimeException("Can't format xml", e); } Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -488,12 +488,13 @@ for (String name : planList) { if (name != null && !"".equals(name)) { try { - SimulationPlan plan = SimulationPlanStorage - .getSimulationPlan(name) - .getNewSimulationPlanInstance(); - StorageHelper.populateStorageParams(planIndex++, - getRegion().getStorage(), plan, propertiesParameters, "plan"); - simulationPlans.add(plan); + SimulationPlanStorage planStorage = SimulationPlanStorage.getSimulationPlan(name); + if (planStorage != null) { // since 4.0.0.3 can return null + SimulationPlan plan = planStorage.getNewSimulationPlanInstance(); + StorageHelper.populateStorageParams(planIndex++, + getRegion().getStorage(), plan, propertiesParameters, "plan"); + simulationPlans.add(plan); + } } catch (IsisFishException eee) { if (log.isWarnEnabled()) { log.warn("Can't find plan: " + name, eee); Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -105,7 +105,7 @@ try { // remove simulation if already exists - if (SimulationStorage.exists(id)) { + if (SimulationStorage.localyExists(id)) { if (log.isWarnEnabled()) { log.warn("Warning , simulation " + id + " aleady exists"); log.warn("Deleting it before doing simulation"); Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -712,6 +712,8 @@ } } } + + control.setText(_("isisfish.message.simulation.ended")); } } @@ -732,7 +734,7 @@ // en sens inverse, il le fera carrement moins souvent for (int simulationIndex = numberOfSimulation - 1; simulationIndex >= 0; --simulationIndex) { String currentId = asPrefixName + "_" + simulationIndex; - if (SimulationStorage.localyExists(currentId)) { + if (SimulationStorage.getSimulationControlFile(currentId).isFile()) { SimulationControl currentSimulationControl = new SimulationControl( currentId); SimulationStorage.readControl(currentId, Property changes on: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java ___________________________________________________________________ Deleted: svn:mergeinfo - Property changes on: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx ___________________________________________________________________ Deleted: svn:mergeinfo - Property changes on: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx ___________________________________________________________________ Deleted: svn:mergeinfo - Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2011 Ifremer, CodeLutin, Chatellier Eric + * Copyright (C) 2011 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -84,6 +84,15 @@ setSelectedItem(null); } + public void addString(String string) { + stringList.add(string); + fireIntervalAdded(this, stringList.size() - 1, stringList.size()); + } + + public boolean containsString(String string) { + return stringList.contains(string); + } + /* * @see javax.swing.ListModel#getElementAt(int) */ Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -92,7 +92,8 @@ } @Override public void simulationStop(SimulationService simService, SimulationJob job) { - initSimulationList(resultUI); + StringComboModel model = (StringComboModel)resultUI.getSimulationComboBox().getModel(); + model.addString(job.getId()); } @Override public void clearJobDone(SimulationService simService) { Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -66,6 +66,7 @@ import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishRuntimeException; import fr.ifremer.isisfish.datastore.CodeSourceStorage; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.FormuleStorage; import fr.ifremer.isisfish.datastore.JavaSourceStorage; @@ -291,26 +292,26 @@ Language.JAVA); break; case CommunitySimulationPlan: - script = SimulationPlanStorage.getCommunitySimulationPlan(fileName); + script = SimulationPlanStorage.getSimulationPlan(fileName, Location.COMMUNITY); break; case CommunityExport: - script = ExportStorage.getCommunityExport(fileName); + script = ExportStorage.createExport(fileName, Location.COMMUNITY); break; case CommunityRule: - script = RuleStorage.getCommunityRule(fileName); + script = RuleStorage.createRule(fileName, Location.COMMUNITY); break; case CommunityScript: - script = ScriptStorage.getCommunityScript(fileName); + script = ScriptStorage.createScript(fileName, Location.COMMUNITY); break; case CommunitySimulator: - script = SimulatorStorage.getCommunitySimulator(fileName); + script = SimulatorStorage.createSimulator(fileName, Location.COMMUNITY); break; case CommunitySensitivity: - script = SensitivityAnalysisStorage.getCommunitySensitivityAnalysis(fileName); + script = SensitivityAnalysisStorage.createSensitivityAnalysis(fileName, Location.COMMUNITY); break; case CommunitySensitivityExport: script = SensitivityExportStorage - .getCommunitySensitivityExport(fileName); + .createSensitivityExport(fileName, Location.COMMUNITY); break; default: if (log.isErrorEnabled()) { @@ -435,46 +436,46 @@ } break; case Rule: - script = RuleStorage.getRule(file.getName()); + script = RuleStorage.getRule(file.getName(), Location.OFFICIAL); break; case SimulationPlan: - script = SimulationPlanStorage.getSimulationPlan(file.getName()); + script = SimulationPlanStorage.getSimulationPlan(file.getName(), Location.OFFICIAL); break; case Export: - script = ExportStorage.getExport(file.getName()); + script = ExportStorage.getExport(file.getName(), Location.OFFICIAL); break; case Script: - script = ScriptStorage.getScript(file.getName()); + script = ScriptStorage.getScript(file.getName(), Location.OFFICIAL); break; case Simulator: - script = SimulatorStorage.getSimulator(file.getName()); + script = SimulatorStorage.getSimulator(file.getName(), Location.OFFICIAL); break; case Sensitivity: - script = SensitivityAnalysisStorage.getSensitivityAnalysis(file.getName()); + script = SensitivityAnalysisStorage.getSensitivityAnalysis(file.getName(), Location.OFFICIAL); break; case SensitivityExport: - script = SensitivityExportStorage.getSensitivityExport(file.getName()); + script = SensitivityExportStorage.getSensitivityExport(file.getName(), Location.OFFICIAL); break; case CommunityRule: - script = RuleStorage.getCommunityRule(file.getName()); + script = RuleStorage.getRule(file.getName(), Location.COMMUNITY); break; case CommunitySimulationPlan: - script = SimulationPlanStorage.getCommunitySimulationPlan(file.getName()); + script = SimulationPlanStorage.getSimulationPlan(file.getName(), Location.COMMUNITY); break; case CommunityExport: - script = ExportStorage.getCommunityExport(file.getName()); + script = ExportStorage.getExport(file.getName(), Location.COMMUNITY); break; case CommunityScript: - script = ScriptStorage.getCommunityScript(file.getName()); + script = ScriptStorage.getScript(file.getName(), Location.COMMUNITY); break; case CommunitySimulator: - script = SimulatorStorage.getCommunitySimulator(file.getName()); + script = SimulatorStorage.getSimulator(file.getName(), Location.COMMUNITY); break; case CommunitySensitivity: - script = SensitivityAnalysisStorage.getCommunitySensitivityAnalysis(file.getName()); + script = SensitivityAnalysisStorage.getSensitivityAnalysis(file.getName(), Location.COMMUNITY); break; case CommunitySensitivityExport: - script = SensitivityExportStorage.getCommunitySensitivityExport(file.getName()); + script = SensitivityExportStorage.getSensitivityExport(file.getName(), Location.COMMUNITY); break; default: log.fatal("ScriptType unknown: " + file.getName()); Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx 2012-03-05 10:52:26 UTC (rev 3633) @@ -54,7 +54,14 @@ if (log.isDebugEnabled()) { log.debug("Refresh second pass UI simulations list"); } - fieldSensitivitySimulationSelect.setModel(getSensitivitySimulationModel()); + StringComboModel model = (StringComboModel)fieldSensitivitySimulationSelect.getModel(); + String simulationName = job.getId(); + if (simulationName.startsWith("as_")) { + String masterSensitivityName = simulationName.substring(0, simulationName.lastIndexOf("_")); + if (!model.containsString(masterSensitivityName)) { + model.addString(masterSensitivityName); + } + } } @Override @@ -68,7 +75,7 @@ * Model de contenu de la liste des nom de simulations */ public StringComboModel getSensitivitySimulationModel() { - java.util.List<String> asNames = new ArrayList<String>(); + List<String> asNames = new ArrayList<String>(); for (String simulationName : SimulationStorage.getSimulationNames()) { if (simulationName.startsWith("as_")) { String masterSensitivityName = simulationName.substring(0, simulationName.lastIndexOf("_")); Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2005 - 2011 Ifremer, CodeLutin, Chatellier Eric + Copyright (C) 2005 - 2012 Ifremer, CodeLutin, Chatellier Eric %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -93,7 +93,8 @@ @Override public void simulationStop(SimulationService simService, SimulationJob job) { - fieldSimulParamsSelect.setModel(getSimulParamsSelectModel(true)); + StringComboModel model = (StringComboModel)fieldSimulParamsSelect.getModel(); + model.addString(job.getId()); } @Override @@ -306,13 +307,8 @@ } protected ComboBoxModel getSimulParamsSelectModel(boolean force) { - java.util.List<String> items = simulAction.getFilteredOldSimulatorNames(force); - DefaultComboBoxModel result = new DefaultComboBoxModel(); - if (items != null) { - for (String s : items){ - result.addElement(s); - } - } + List<String> items = simulAction.getFilteredOldSimulatorNames(force); + StringComboModel result = new StringComboModel(items); return result; } Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2011 Codelutin, Chatellier Eric + * Copyright (C) 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -32,16 +32,19 @@ import java.util.ArrayList; import java.util.List; +import javax.swing.AbstractListModel; import javax.swing.ComboBoxModel; -import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; -import org.jdesktop.swingx.JXComboBox; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTextField; import org.nuiton.util.Resource; @@ -54,8 +57,10 @@ * Last update : $Date$ * By : $Author$ */ -public class FilterableComboBox extends JPanel { +public class FilterableComboBox extends JPanel implements ListDataListener { + private static Log log = LogFactory.getLog(FilterableComboBox.class); + /** serialVersionUID. */ private static final long serialVersionUID = -6669320998140538372L; @@ -69,13 +74,6 @@ protected boolean filtering = false; - /* - * Il faut obligatoirement que la liste filtrées soit mise en cache, car - * l'appeler dans le getElementAt() comme c'était fait avant dégrade énormement - * les perfs, un truc de dingue. - */ - protected List<Object> itemCache; - public FilterableComboBox() { actionListeners = new ArrayList<ActionListener>(); buildLayout(); @@ -86,58 +84,71 @@ setModel(model); } - class FilterComboBoxModel extends DefaultComboBoxModel { + class FilterComboBoxModel extends AbstractListModel implements ComboBoxModel { /** serialVersionUID. */ private static final long serialVersionUID = 6256289874593024153L; protected ComboBoxModel model; + protected List<Integer> realIndexes = new ArrayList<Integer>(); + + protected Object selectedItem; + public FilterComboBoxModel(ComboBoxModel model) { this.model = model; + fireDataChanged(); } + public ComboBoxModel getModel() { + return model; + } + @Override public int getSize() { - int size = 0; - if (itemCache != null) { - size = itemCache.size(); - } else { - size = model.getSize(); - } + int size = realIndexes.size(); return size; } @Override public Object getElementAt(int index) { - Object element = null; - if (itemCache != null) { - element = itemCache.get(index); - } else { - element = model.getElementAt(index); - } + int realIndex = realIndexes.get(index); + Object element = model.getElementAt(realIndex); return element; } public void fireDataChanged() { filtering = true; - super.fireContentsChanged(this, 0, model.getSize()); - + + if (log.isDebugEnabled()) { + log.debug("Refreshing real indexes list"); + } + // filter list - int delegateSize = model.getSize(); - itemCache = new ArrayList<Object>(delegateSize); - for (int i = 0; i < delegateSize; ++i) { + realIndexes.clear(); + for (int i = 0; i < model.getSize(); ++i) { Object element = model.getElementAt(i); - if (element.toString().matches(".*" + filterField.getText() + ".*")) { - itemCache.add(element); + if (element.toString().contains(filterField.getText())) { + realIndexes.add(i); } } + + fireIntervalRemoved(this, 0, model.getSize()); + fireIntervalAdded(this, 0, realIndexes.size()); filtering = false; } - - + + @Override + public void setSelectedItem(Object anItem) { + this.selectedItem = anItem; + } + + @Override + public Object getSelectedItem() { + return selectedItem; + } } - + class FilterDocumentListener implements DocumentListener { @Override public void insertUpdate(DocumentEvent e) { @@ -153,9 +164,9 @@ public void changedUpdate(DocumentEvent e) { updateFilter(); } - + protected void updateFilter() { - ((FilterComboBoxModel)dataBox.getModel()).fireDataChanged(); + ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged(); resetButton.setEnabled(!filterField.getText().isEmpty()); } } @@ -188,7 +199,7 @@ * Build layout. */ private void buildLayout() { - dataBox = new JXComboBox(); + dataBox = new JComboBox(); dataBox.addActionListener(new ComboBoxActionListener()); filterField = new JXTextField(_("isisfish.common.filter")); // fix size @@ -214,13 +225,18 @@ * @param model model to set */ public void setModel(ComboBoxModel model) { + model.addListDataListener(this); dataBox.setModel(new FilterComboBoxModel(model)); } + public ComboBoxModel getModel() { + return ((FilterComboBoxModel)dataBox.getModel()).getModel(); + } + public Object getSelectedItem() { return dataBox.getSelectedItem(); } - + public void setSelectedItem(Object object) { dataBox.setSelectedItem(object); } @@ -232,4 +248,43 @@ public boolean removeActionListener(ActionListener o) { return actionListeners.remove(o); } + + /* + * @see javax.swing.event.ListDataListener#intervalAdded(javax.swing.event.ListDataEvent) + */ + @Override + public void intervalAdded(ListDataEvent e) { + if (!filtering) { + if (log.isDebugEnabled()) { + log.debug("intervalAdded : fireDataChanged"); + } + ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged(); + } + } + + /* + * @see javax.swing.event.ListDataListener#intervalRemoved(javax.swing.event.ListDataEvent) + */ + @Override + public void intervalRemoved(ListDataEvent e) { + if (!filtering) { + if (log.isDebugEnabled()) { + log.debug("intervalRemoved : fireDataChanged"); + } + ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged(); + } + } + + /* + * @see javax.swing.event.ListDataListener#contentsChanged(javax.swing.event.ListDataEvent) + */ + @Override + public void contentsChanged(ListDataEvent e) { + if (!filtering) { + if (log.isDebugEnabled()) { + log.debug("contentsChanged : fireDataChanged"); + } + ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged(); + } + } } Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -51,6 +51,7 @@ import com.sun.tools.javac.api.JavacTool; import fr.ifremer.isisfish.IsisFish; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import fr.ifremer.isisfish.datastore.JavaSourceStorage; /** @@ -189,11 +190,12 @@ List<File> classpath = new ArrayList<File>(); classpath.add(rootSrc.getAbsoluteFile()); - // FIXME echatellier 20110617 : hack depuis qu'il y a un - // nouveau dossier de sources de script "communauté", mais - // qui peu dépendre de sources du dossier "officiel" - if (rootSrc.equals(IsisFish.config.getCommunityDatabaseDirectory())) { - classpath.add(IsisFish.config.getDatabaseDirectory()); + + // works better than + // fileManager.setLocation(StandardLocation.SOURCE_PATH, Location.ALL); + // for some test + for (File dir : Location.ALL.getDirectories()) { + classpath.add(dir); } result = compile(classpath, src, dest, out); Property changes on: branches/4.1/src/main/java/fr/ifremer/isisfish/util/ssh/SSHUtils.java ___________________________________________________________________ Deleted: svn:mergeinfo - Property changes on: branches/4.1/src/site/resources/images/isis-simulation.png ___________________________________________________________________ Deleted: svn:mergeinfo - Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/AbstractIsisFishTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/AbstractIsisFishTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/AbstractIsisFishTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -36,6 +36,7 @@ import org.nuiton.util.FileUtil; import fr.ifremer.isisfish.datastore.AutoMigrationIsisH2Config; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import freemarker.cache.ClassTemplateLoader; import freemarker.ext.beans.BeansWrapper; import freemarker.template.Configuration; @@ -56,7 +57,7 @@ */ public abstract class AbstractIsisFishTest { - protected static File dirDatabase; + protected static File dirIsisBase; /** * Return specific temp dir. @@ -86,12 +87,12 @@ public static void init() throws Exception { File mavenTestDir = getTestDirectory(); - dirDatabase = FileUtil.createTempDirectory("isisdbtest", "", mavenTestDir); + dirIsisBase = FileUtil.createTempDirectory("isisdbtest", "", mavenTestDir); - System.setProperty("user.home", dirDatabase.getAbsolutePath()); + System.setProperty("user.home", dirIsisBase.getAbsolutePath()); System.setProperty(IsisConfig.Option.LAUNCH_UI.key, "false"); - System.setProperty(IsisConfig.Option.DATABASE_DIRECTORY.key, dirDatabase.getAbsolutePath()); - System.setProperty(IsisConfig.Option.SSH_KEY_FILE.key, dirDatabase.getAbsolutePath() + File.separator + "ssh" + File.separator + "isis_test_dsa"); + System.setProperty(IsisConfig.Option.ISIS_HOME_DIRECTORY.key, dirIsisBase.getAbsolutePath()); + System.setProperty(IsisConfig.Option.SSH_KEY_FILE.key, dirIsisBase.getAbsolutePath() + File.separator + "ssh" + File.separator + "isis_test_dsa"); IsisFish.init(); IsisFish.initVCS(); @@ -101,7 +102,7 @@ AutoMigrationIsisH2Config.setTestMigrationCallBack(); FileUtils.copyDirectory(new File("src/test/resources/test-database"), - dirDatabase, new FileFilter() { + IsisFish.config.getDatabaseDirectory(), new FileFilter() { @Override public boolean accept(File pathname) { boolean result = true; @@ -122,6 +123,11 @@ public void resetConfig() throws ArgumentsParserException { IsisFish.config = new IsisConfig(); IsisFish.config.parse(); + + // fix static cache in enum + Location.OFFICIAL.setDirectory(IsisFish.config.getDatabaseDirectory()); + Location.COMMUNITY.setDirectory(IsisFish.config.getCommunityDatabaseDirectory()); + Location.ALL.setDirectory(IsisFish.config.getDatabaseDirectory(), IsisFish.config.getCommunityDatabaseDirectory()); } /** @@ -130,7 +136,7 @@ * @return current database directory */ protected static File getCurrentDatabaseDirectory() { - return dirDatabase; + return dirIsisBase; } /** @@ -139,9 +145,9 @@ @AfterClass public static void clean() { System.clearProperty("user.home"); - if (dirDatabase != null) { - FileUtil.deleteRecursively(dirDatabase); - dirDatabase = null; + if (dirIsisBase != null) { + FileUtil.deleteRecursively(dirIsisBase); + dirIsisBase = null; } } Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ExportStorageTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ExportStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ExportStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * Copyright (C) 2009 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -37,6 +37,7 @@ import fr.ifremer.isisfish.AbstractIsisFishTest; import fr.ifremer.isisfish.IsisFish; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import freemarker.template.Configuration; import freemarker.template.Template; @@ -65,7 +66,7 @@ String fileName = "TestExport1"; - ExportStorage exportStorage = ExportStorage.getExport(fileName); + ExportStorage exportStorage = ExportStorage.createExport(fileName, Location.COMMUNITY); // get template Template template = freemarkerConfiguration Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * Copyright (C) 2009 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -37,6 +37,7 @@ import fr.ifremer.isisfish.AbstractIsisFishTest; import fr.ifremer.isisfish.IsisFish; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import freemarker.template.Configuration; import freemarker.template.Template; @@ -65,7 +66,7 @@ String fileName = "TestRule1"; - RuleStorage ruleStorage = RuleStorage.getRule(fileName); + RuleStorage ruleStorage = RuleStorage.createRule(fileName, Location.OFFICIAL); // get template Template template = freemarkerConfiguration Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ScriptStorageTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ScriptStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ScriptStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * Copyright (C) 2009 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -38,6 +38,7 @@ import fr.ifremer.isisfish.AbstractIsisFishTest; import fr.ifremer.isisfish.IsisFish; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import freemarker.template.Configuration; import freemarker.template.Template; @@ -69,10 +70,10 @@ String content1 = "public class test { public static void main(String[]args) {System.out.println(\"The test 1 :)\")} "; String content2 = "public class test { public static void main(String[]args) {System.out.println(\"The test 2 :) with different length :(\")} "; - ScriptStorage script = ScriptStorage.getScript("test"); + ScriptStorage script = ScriptStorage.createScript("test", Location.COMMUNITY); try { - System.out.println("File: " + script.getFile()); - System.out.println("Content: '" + script.getContent() + "'"); + //System.out.println("File: " + script.getFile()); + //System.out.println("Content: '" + script.getContent() + "'"); Assert.assertFalse(script.exists()); Assert.assertEquals("", script.getContent()); @@ -80,11 +81,11 @@ script.setContent(content1); Assert.assertTrue(script.exists()); - System.out.println("Content: '" + script.getContent() + "'"); + //System.out.println("Content: '" + script.getContent() + "'"); Assert.assertEquals(content1, script.getContent()); FileUtil.writeString(script.getFile(), content2); - System.out.println("Content: '" + script.getContent() + "'"); + //System.out.println("Content: '" + script.getContent() + "'"); Assert.assertEquals(content2, script.getContent()); } finally { script.delete(false); @@ -97,7 +98,7 @@ String fileName = "TestScript1"; - ScriptStorage scriptStorage = ScriptStorage.getScript(fileName); + ScriptStorage scriptStorage = ScriptStorage.createScript(fileName, Location.COMMUNITY); // get template Template template = freemarkerConfiguration Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * Copyright (C) 2009 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -37,6 +37,7 @@ import fr.ifremer.isisfish.AbstractIsisFishTest; import fr.ifremer.isisfish.IsisFish; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import freemarker.template.Configuration; import freemarker.template.Template; @@ -66,7 +67,7 @@ String fileName = "TestSensitivityAnalysis1"; SensitivityAnalysisStorage sensitivityStorage = SensitivityAnalysisStorage - .getSensitivityAnalysis(fileName); + .createSensitivityAnalysis(fileName, Location.OFFICIAL); // get template Template template = freemarkerConfiguration Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * Copyright (C) 2009 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -37,6 +37,7 @@ import fr.ifremer.isisfish.AbstractIsisFishTest; import fr.ifremer.isisfish.IsisFish; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import freemarker.template.Configuration; import freemarker.template.Template; @@ -65,7 +66,7 @@ String fileName = "TestSensitivityExport1"; - SensitivityExportStorage sensitivityExportStorage = SensitivityExportStorage.getSensitivityExport(fileName); + SensitivityExportStorage sensitivityExportStorage = SensitivityExportStorage.createSensitivityExport(fileName, Location.COMMUNITY); // get template Template template = freemarkerConfiguration Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric + * Copyright (C) 2009 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -37,6 +37,7 @@ import fr.ifremer.isisfish.AbstractIsisFishTest; import fr.ifremer.isisfish.IsisFish; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import freemarker.template.Configuration; import freemarker.template.Template; @@ -66,7 +67,7 @@ String fileName = "TestSimulationPlan1"; SimulationPlanStorage simulationPlanStorage = SimulationPlanStorage - .getSimulationPlan(fileName); + .createSimulationPlan(fileName, Location.OFFICIAL); // get template Template template = freemarkerConfiguration Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulatorStorageTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulatorStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulatorStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * Copyright (C) 2009 - 2012 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -41,6 +41,7 @@ import fr.ifremer.isisfish.AbstractIsisFishTest; import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location; import fr.ifremer.isisfish.simulator.Simulator; import freemarker.template.Configuration; import freemarker.template.Template; @@ -73,7 +74,7 @@ String fileName = "TestSimulator1"; SimulatorStorage simulatorStorage = SimulatorStorage - .getSimulator(fileName); + .createSimulator(fileName, Location.COMMUNITY); // get template Template template = freemarkerConfiguration Property changes on: branches/4.1/src/test/java/fr/ifremer/isisfish/entity/PersistenceTest.java ___________________________________________________________________ Deleted: svn:mergeinfo - Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -154,8 +154,8 @@ List<File> classpath = new ArrayList<File>(); classpath.add(fB.getParentFile()); - CompileHelper.compile(classpath, Collections.singletonList(fB), dest, - null); + int result = CompileHelper.compile(classpath, Collections.singletonList(fB), dest, null); + Assert.assertEquals(0, result); // essai de chargement de la classe URL[] cp = new URL[] { dest.toURI().toURL() }; Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java 2012-03-05 10:26:31 UTC (rev 3632) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java 2012-03-05 10:52:26 UTC (rev 3633) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin + * Copyright (C) 2009 - 2012 Ifremer, Code Lutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -29,12 +29,11 @@ import java.io.IOException; import java.io.PrintWriter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Test; import fr.ifremer.isisfish.AbstractIsisFishTest; +import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.datastore.SimulationPlanStorage; /** @@ -51,9 +50,6 @@ */ public class JavadocHelperTest extends AbstractIsisFishTest { - /** Class logger */ - private static Log log = LogFactory.getLog(JavadocHelperTest.class); - /** * Try to generate javadoc on current isis-fish-data directory. * (single java file case) @@ -64,7 +60,7 @@ @Test public void testIsisFishDataJavadoc() throws IOException, ClassNotFoundException { - File currentDirectory = getCurrentDatabaseDirectory(); + File currentDirectory = IsisFish.config.getDatabaseDirectory(); File destinationDirectory = new File(getTestDirectory(), "isis-docs"); File testJavaFile = new File(currentDirectory, SimulationPlanStorage.SIMULATION_PLAN_PATH + File.separatorChar + "CalibrationSimplexePasVariable2Capturabilite.java");
participants (1)
-
echatellier@users.forge.codelutin.com