Author: chatellier Date: 2010-01-04 11:12:04 +0000 (Mon, 04 Jan 2010) New Revision: 2863 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl Log: Add option to disable automatic data migration and vcs update Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-01-04 08:53:44 UTC (rev 2862) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-01-04 11:12:04 UTC (rev 2863) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2002-2009 Ifremer, Code Lutin, Benjamin Poussin + * Copyright (C) 2002-2010 Ifremer, Code Lutin, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -151,7 +151,7 @@ return apiVersion; } - static final public String COPYRIGHT_TEXT = "Version " + getVersion() + " IFREMER-MAERHA © 2000-2009"; + static final public String COPYRIGHT_TEXT = "Version " + getVersion() + " IFREMER-MAERHA © 2000-2010"; static final public String CONFIG_FILENAME = "isis-config-" + version.getNumber(0); /** separateur de liste */ @@ -555,10 +555,35 @@ return result; }*/ + /** + * Get launch.ui option value. + * + * @return launch ui option value + */ public boolean isLaunchUI() { boolean result = getOptionAsBoolean(Option.LAUNCH_UI.key); return result; } + + /** + * Get perform migration option value. + * + * @return perform migration option value + */ + public boolean isPerformMigration() { + boolean result = getOptionAsBoolean(Option.PERFORM_MIGRATION.key); + return result; + } + + /** + * Get perform vcs update option value. + * + * @return perform vcs update option value + */ + public boolean isPerformVcsUpdate() { + boolean result = getOptionAsBoolean(Option.PERFORM_VCS_UPDATE.key); + return result; + } public void setSimulatorLauncher(String value) { setOption(Option.SIMULATOR_LAUNCHER.key, value); @@ -896,14 +921,20 @@ /** Serveur accessible par SSH : nombre de thread au maximum a utilise simultanement */ SIMULATOR_SSH_MAXTHREADS("simulation.ssh.max.threads", _("isisfish.config.main.simulation.ssh.max.threads.description"), "1"), + /** Application locale (for i18n init). */ LOCALE("locale", _("isisfish.config.main.locale.description"), "fr_FR"), SIMULATION_SHOW_ONLY_ERROR("simulationShowOnlyError", _("isisfish.config.main.simulationShowOnlyError.description"), "false"), - // if false no graphical interface + /** Perform ui launch option. */ LAUNCH_UI("launch.ui", _("isisfish.config.main.launchUI.description"), "true"), + /** Perform data migration option. */ + PERFORM_MIGRATION("perform.migration", _("isisfish.config.main.performmigration.description"), "true"), + /** Perform vcs update option. */ + PERFORM_VCS_UPDATE("perform.vcsupdate", _("isisfish.config.main.performvcsupdate.description"), "true"), + /** Database directory. */ DATABASE_DIRECTORY("database.directory", _("isisfish.config.vcs.localDatabasePath.description"), getUserHome() + File.separator + "isis-database-3"), - + /** Database lock mode (h2).*/ DATABASE_LOCK_MODE("database.lockmode", _("isisfish.config.database.lockmode.description"), "file"), // SSH (global, for both VCS and caparmor) Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2010-01-04 08:53:44 UTC (rev 2862) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2010-01-04 11:12:04 UTC (rev 2863) @@ -139,9 +139,11 @@ if (log.isInfoEnabled()) { log.info(_("isisfish.launching", config.getElapsedTimeAsString())); } - + // after init vcs and local data config.doAction(IsisConfig.STEP_AFTER_INIT_VCS); + + doNuitonMigration(); launchUI(); @@ -177,65 +179,71 @@ * Find all files containing "org.codelutin." into "org.nuiton." */ protected static void doNuitonMigration() { - - // Search in a set of directories - // Searching throw simulations/* can take a huge time... - File[] folders = new File[]{ - AnalysePlanStorage.getAnalysePlanDirectory(), - ExportStorage.getExportDirectory(), - RuleStorage.getRuleDirectory(), - ScriptStorage.getScriptDirectory(), - SensitivityStorage.getSensitivityDirectory(), - SensitivityExportStorage.getSensitivityExportDirectory(), - SimulatorStorage.getSimulatorDirectory() - }; - - try { - Map<File, List<CharSequence>> filesToMigrate = new HashMap<File, List<CharSequence>>(); - for (File folder : folders) { - filesToMigrate.putAll(FileUtil.grep("org\\.codelutin\\.", folder, ".*\\.java", "ISO-8859-1")); - } - - if (filesToMigrate != null && !filesToMigrate.isEmpty()) { - - // yes by defaut (for tests) - // but ask user if UI launch - boolean migrationOption = true; - if (IsisFish.config.isLaunchUI()) { - // display a user frame - String migratedFiles = ""; - String separator = ""; - for (File fileToMigrate : filesToMigrate.keySet()) { - migratedFiles += separator + fileToMigrate.toString(); - separator = "\n"; - } - JLabel labelModifiedFiles = new JLabel(_("isisfish.misc.nuitonmigration")); - JTextArea areaModifiedFiles = new JTextArea(migratedFiles); - areaModifiedFiles.setEditable(false); - areaModifiedFiles.setAutoscrolls(true); - JScrollPane sp = new JScrollPane(areaModifiedFiles); - sp.setPreferredSize(new Dimension(500, 100)); // don't remove popup is huge - migrationOption = ask(new Component[] { labelModifiedFiles, sp} ); + if (config.isPerformMigration()) { + // Search in a set of directories + // Searching throw simulations/* can take a huge time... + File[] folders = new File[]{ + AnalysePlanStorage.getAnalysePlanDirectory(), + ExportStorage.getExportDirectory(), + RuleStorage.getRuleDirectory(), + ScriptStorage.getScriptDirectory(), + SensitivityStorage.getSensitivityDirectory(), + SensitivityExportStorage.getSensitivityExportDirectory(), + SimulatorStorage.getSimulatorDirectory() + }; + + try { + Map<File, List<CharSequence>> filesToMigrate = new HashMap<File, List<CharSequence>>(); + for (File folder : folders) { + filesToMigrate.putAll(FileUtil.grep("org\\.codelutin\\.", folder, ".*\\.java", "ISO-8859-1")); } - - // if migration has to be done - if (migrationOption) { - if (log.isInfoEnabled()) { - log.info("Starting nuiton.org migration for user scripts :"); + + if (filesToMigrate != null && !filesToMigrate.isEmpty()) { + + // yes by defaut (for tests) + // but ask user if UI launch + boolean migrationOption = true; + if (IsisFish.config.isLaunchUI()) { + // display a user frame + String migratedFiles = ""; + String separator = ""; + for (File fileToMigrate : filesToMigrate.keySet()) { + migratedFiles += separator + fileToMigrate.toString(); + separator = "\n"; + } + JLabel labelModifiedFiles = new JLabel(_("isisfish.misc.nuitonmigration")); + JTextArea areaModifiedFiles = new JTextArea(migratedFiles); + areaModifiedFiles.setEditable(false); + areaModifiedFiles.setAutoscrolls(true); + JScrollPane sp = new JScrollPane(areaModifiedFiles); + sp.setPreferredSize(new Dimension(500, 100)); // don't remove popup is huge + migrationOption = ask(new Component[] { labelModifiedFiles, sp} ); } - for (File fileToMigrate : filesToMigrate.keySet()) { + // if migration has to be done + if (migrationOption) { if (log.isInfoEnabled()) { - log.info(" migrate file : " + fileToMigrate.getAbsolutePath()); + log.info("Starting nuiton.org migration for user scripts :"); } - FileUtil.sed("org\\.codelutin\\.", "org.nuiton.", fileToMigrate, "ISO-8859-1"); + + for (File fileToMigrate : filesToMigrate.keySet()) { + if (log.isInfoEnabled()) { + log.info(" migrate file : " + fileToMigrate.getAbsolutePath()); + } + FileUtil.sed("org\\.codelutin\\.", "org.nuiton.", fileToMigrate, "ISO-8859-1"); + } } } } + catch(IOException eee) { + if (log.isErrorEnabled()) { + log.error("Can't to nuiton migration", eee); + } + } } - catch(IOException eee) { - if (log.isErrorEnabled()) { - log.error("Can't to nuiton migration", eee); + else { + if (log.isInfoEnabled()) { + log.info(_("Skip data migration (disabled)")); } } } @@ -392,7 +400,7 @@ */ static public void initVCS() throws VCSException { - if (config.isLaunchUI()) { + if (config.isPerformVcsUpdate()) { // init vcs // in graphical mode, real VCS @@ -564,16 +572,10 @@ } /** - * initialise et lance l'interface graphique si elle est demandee + * Initialise et lance l'interface graphique si elle a demandé a être lancée. */ public static void launchUI() { if (config.isLaunchUI()) { - - // migration must be done in UI envirronement and - // must nerver be done in caparmor - // TODO set it here for now, ui is not displayed on caparmor - doNuitonMigration(); - // init simulater manager SimulationService.getService(); Modified: isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl =================================================================== --- isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl 2010-01-04 08:53:44 UTC (rev 2862) +++ isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl 2010-01-04 11:12:04 UTC (rev 2863) @@ -5,7 +5,7 @@ #source /usr/share/modules/init/csh #module load java/1.6.0 -<#assign commonCommand="/home3/caparmor/poussin/jdk/bin/java -Xmx2500M -jar isis-fish*.jar --option launch.ui false" /> +<#assign commonCommand="/home3/caparmor/poussin/jdk/bin/java -Xmx2500M -jar isis-fish*.jar --option launch.ui false --option perform.vcsupdate false --option perform.migration false" /> <#if qsubmutiplejob> <#-- localsimulationid is short simulation id version --> <#assign localsimulationid='${simulationid}_$PBS_ARRAY_INDEX' />