Author: chatellier Date: 2008-12-11 17:26:48 +0000 (Thu, 11 Dec 2008) New Revision: 1660 Modified: isis-fish/trunk/pom.xml 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/java/fr/ifremer/isisfish/ui/result/ResultEdit.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/AbstractVCS.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCS.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSActionEvent.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSNone.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSSVN.java isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties Log: Correct checkProtocol code (VCS) Modified: isis-fish/trunk/pom.xml =================================================================== --- isis-fish/trunk/pom.xml 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/pom.xml 2008-12-11 17:26:48 UTC (rev 1660) @@ -26,7 +26,7 @@ <dependency> <groupId>org.codelutin</groupId> <artifactId>lutinutil</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <scope>compile</scope> </dependency> @@ -40,7 +40,7 @@ <dependency> <groupId>org.codelutin</groupId> <artifactId>topia-service</artifactId> - <version>1.0.0-SNAPSHOT</version> + <version>1.0.0</version> <scope>compile</scope> </dependency> @@ -306,16 +306,16 @@ <!--labs.project>isis-fish</labs.project--> <!-- jaxx version --> - <jaxx.version>0.7-SNAPSHOT</jaxx.version> + <jaxx.version>0.7</jaxx.version> <!-- generator version --> - <generator.version>0.62-SNAPSHOT</generator.version> + <generator.version>0.62</generator.version> <!-- topia version --> - <topia.version>2.1.0-SNAPSHOT</topia.version> + <topia.version>2.1.0</topia.version> <!-- lutinwidget version --> - <lutinwidget.version>0.11-SNAPSHOT</lutinwidget.version> + <lutinwidget.version>0.11</lutinwidget.version> <!--Main class in JAR --> <maven.jar.main.class>fr.ifremer.isisfish.IsisFish</maven.jar.main.class> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2008-12-11 17:26:48 UTC (rev 1660) @@ -614,7 +614,7 @@ /** prevu pour l'architecture de lancement en plugin: local, isis-server, caparmor, ... */ SIMULATOR_LAUNCHER(SimulationService.SIMULATION_LAUNCHER + ".localDefault", _("isisfish.config.main.localSimulator.description"), InProcessSimulatorLauncher.class.getName()), SIMULATOR_LAUNCHER_SUB(SimulationService.SIMULATION_LAUNCHER + ".subDefault", _("isisfish.config.main.subSimulator.description"), SubProcessSimulationLauncher.class.getName()), - SIMULATOR_LAUNCHER_REMOTE(SimulationService.SIMULATION_LAUNCHER + ".remoteDefault", _("isisfish.config.main.remoteSimulator.description"), SshSimulatorLauncher.class.getName()), + // SIMULATOR_LAUNCHER_REMOTE(SimulationService.SIMULATION_LAUNCHER + ".remoteDefault", _("isisfish.config.main.remoteSimulator.description"), SshSimulatorLauncher.class.getName()), SIMULATOR_SERVER("simulation.server", _("isisfish.config.main.simulationServer.description"), "http://simulateur.ifremer.fr:9090"), /** le login a utiliser pour les launcher distant, le type du launcher est ajouter a la cle (car 1 login par launcher) */ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2008-12-11 17:26:48 UTC (rev 1660) @@ -56,7 +56,6 @@ import fr.ifremer.isisfish.vcs.VetoableActionListener; import java.io.File; import java.text.SimpleDateFormat; -import java.util.Arrays; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.logging.LogFactory; import static org.codelutin.i18n.I18n._; @@ -76,12 +75,11 @@ import fr.ifremer.isisfish.ui.WelcomeUI; /** - * This is the main class of <code>IsisFish<code> application. + * This is the main class of <code>IsisFish</code> application. * * @author poussin * @author chemit */ - public class IsisFish { // IsisFish /** to use log facility, just put in your code: log.info(\"...\"); */ @@ -155,9 +153,10 @@ } /** - * All main in other class must call this method, parse arguement, + * All main in other class must call this method, parse arguments, * load configuration file, init language and load converter. - * + * + * @param args main args * @throws Exception if any exception while build configuration */ static public void init(String ... args) throws Exception { @@ -248,9 +247,11 @@ config.saveForUser(); vcs = VCSFactory.createVCS(config); } + /** * Initialise le VCS et check s'il y a des mises a jour pour prevenir * l'utilisateur + * @throws VCSException */ static public void initVCS() throws VCSException { if (config.isLaunchUI()) { @@ -353,7 +354,6 @@ } } - // check file status vcs.checkFileStatus(); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultEdit.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultEdit.java 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultEdit.java 2008-12-11 17:26:48 UTC (rev 1660) @@ -157,7 +157,7 @@ // on affecte le nom if (group.getDimensionName(i).equals("")){ - item.getLabel().setText(_("isisfish.result.dimension ")+i); + item.getLabel().setText(_("isisfish.result.dimension") + " " + i); }else{ item.getLabel().setText(_(group.getDimensionName(i))); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/AbstractVCS.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/AbstractVCS.java 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/AbstractVCS.java 2008-12-11 17:26:48 UTC (rev 1660) @@ -136,6 +136,10 @@ */ public void setPath(String path) throws VCSException { this.path = path; + + // in case of set path, don't do checkProtocol + // don't work with svn + // FIXME won't work on SVN checkProtocol(); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCS.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCS.java 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCS.java 2008-12-11 17:26:48 UTC (rev 1660) @@ -76,7 +76,7 @@ public static final String VCS_USER_NAME = "vcs.username"; /** - * user passwd or passphrase (protocole dependent) to access vcs ex: xxxxxxxx + * user passwd or passphrase (protocol dependent) to access vcs ex: xxxxxxxx */ public static final String VCS_USER_PASSWORD = "vcs.password"; @@ -109,7 +109,7 @@ boolean isValidLocalRepository(); /** - * Return true, if local repository is writeable. + * Return true, if local repository is writable. * (use trunk and is not anonymous) * * @return writable @@ -126,11 +126,11 @@ void setWriteable(boolean value); /** - * Commit specified files, if files is null, all files are commited. + * Commit specified files, if files is null, all files are committed. * * @param files files to commit * @param msg message used to commit - * @throws org.codelutin.gesi.vcs.VCSException + * @throws VCSException */ void commit(List<File> files, String msg) throws VCSException; @@ -139,7 +139,7 @@ * * @param files list of file to add * @param msg message for commit - * @throws org.codelutin.gesi.vcs.VCSException + * @throws VCSException */ void add(List<File> files, String msg) throws VCSException; @@ -148,10 +148,9 @@ * * @param tag tag to used, null = /trunk other is tags/[tag] * @param recurse if file is directory checkout sub file - * @throws org.codelutin.gesi.vcs.VCSException + * @throws VCSException */ - void checkout(VersionNumber tag, boolean recurse) - throws VCSException; + void checkout(VersionNumber tag, boolean recurse) throws VCSException; /** * Delete and commit files in server repository. @@ -209,7 +208,7 @@ /** * Get connection state. * - * @return true if server is connectable + * @return true if server is connected */ boolean isConnected(); @@ -232,7 +231,7 @@ boolean isTag(VersionNumber version) throws VCSException; /** - * Check if file is uptodate. + * Check if file is up-to-date. * * @param file file to check * @return true if file is in last version @@ -259,7 +258,7 @@ * @param file files to update * @param recurse * @return true if there are some merging conflict, false otherwise - * @throws org.codelutin.gesi.vcs.VCSException + * @throws VCSException */ List<File> update(File file, boolean recurse) throws VCSException; @@ -284,47 +283,53 @@ void checkFileStatus() throws VCSException; /** - * TODO comment me + * Get host. + * * @return host */ String getHost(); /** - * TODO comment me + * Get login. + * * @return login */ String getLogin(); /** - * TODO comment me + * Get password. + * * @return password */ String getPassword(); /** - * TODO comment me + * Get repository path. + * * @return path */ String getPath(); /** - * TODO comment me - * @return protocole + * Get protocol. + * + * @return protocol */ String getProtocol(); /** - * TODO comment me + * Get ssh key file. + * * @return ssh key file */ File getSshKeyFile(); /** - * retourne le tag reellement utilise, par exemple si on a fait un + * Retourne le tag reellement utilise, par exemple si on a fait un * setTag(3.2.0) cette methode retourne "/tags/3.2.0", pour setTag(null) * on retourne "/trunk" * @return tag - * @throws org.codelutin.gesi.vcs.VCSException + * @throws VCSException */ String getTag() throws VCSException; @@ -333,49 +338,62 @@ * trunk. * @param version version to go, if null trunk is used, otherwize * tags/version is used - * @throws org.codelutin.gesi.vcs.VCSException + * @throws VCSException */ void setTag(VersionNumber version) throws VCSException; /** + * Change host. + * * checkProtocol is automaticaly done * - * @param host + * @param host new host. + * * @throws VCSException */ void setHost(String host) throws VCSException; /** + * Change login. + * * checkProtocol is automaticaly done * - * @param login + * @param login new login * @throws VCSException */ void setLogin(String login) throws VCSException; /** - * TODO comment me + * Change password. + * * @param password password */ void setPassword(String password); /** - * checkProtocol is automaticaly done - * @param path + * Change path. + * + * checkPath is automaticaly done + * + * @param path new path * @throws VCSException */ void setPath(String path) throws VCSException; /** + * Change protocol. + * * checkProtocol is automaticaly done + * * @param protocol * @throws VCSException */ void setProtocol(String protocol) throws VCSException; /** - * TODO comment me - * @param sshKeyFile + * Change ssk key file to use. + * + * @param sshKeyFile new ssh kay file */ void setSshKeyFile(File sshKeyFile); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSActionEvent.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSActionEvent.java 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSActionEvent.java 2008-12-11 17:26:48 UTC (rev 1660) @@ -1,26 +1,24 @@ -/* *##% - * Copyright (C) 2002-2008 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 - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - * USA. - *##%*/ +/* *##% GeSi + * Copyright (C) 2008 CodeLutin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/ package fr.ifremer.isisfish.vcs; /** - * Represente une action VCS que l'on souhaite faire + * Représente une action VCS que l'on souhaite faire * * @author poussin * @version $Revision$ @@ -36,7 +34,8 @@ UPDATE_REPOSITORY, // when checkFileStatus SWITCH, // when setTag SWITCH_PROTOCOL, // when checkProtocol + SWITCH_PATH, // when checkPath DELETE, // when delete ADD // when add - + } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSNone.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSNone.java 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSNone.java 2008-12-11 17:26:48 UTC (rev 1660) @@ -1,21 +1,19 @@ -/* *##% - * Copyright (C) 2002-2008 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 - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - * USA. - *##%*/ +/* *##% GeSi + * Copyright (C) 2008 CodeLutin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%*/ package fr.ifremer.isisfish.vcs; @@ -25,8 +23,6 @@ import java.util.List; import java.util.Map; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.codelutin.util.VersionNumber; /** @@ -40,21 +36,20 @@ * by : $Author$ */ public class VCSNone extends AbstractVCS { - - /** to use log facility, just put in your code: log.info(\"...\"); */ - static private Log log = LogFactory.getLog(VCSNone.class); - - public VCSNone(File localRepository, - String protocol, String host, String path, - File sshKeyFile, String login, String password) { - super(localRepository, protocol, host, path, sshKeyFile, login, password); + + /* Class logger */ + //private static Log log = LogFactory.getLog(VCSNone.class); + + public VCSNone(File localRepository, String protocol, String host, + String path, File sshKeyFile, String login, String password) { + super(localRepository, protocol, host, path, sshKeyFile, login, + password); } public boolean isValidLocalRepository() { return true; } - /** * look on server if version is tag repository * @param version version number like 3.2 @@ -63,7 +58,7 @@ public boolean isTag(VersionNumber version) throws VCSException { return false; } - + /** * Ask if there are some new or modified files on server * @return true if new file available @@ -71,7 +66,7 @@ public boolean haveUpdate() throws VCSException { return false; } - + /** * get list of new or modified files on server * @return list of modified or new files @@ -79,7 +74,7 @@ public List<File> getUpdatedFile() throws VCSException { return new ArrayList<File>(); } - + /** * Return all changelog between local file version and remote repository * file version @@ -93,23 +88,23 @@ public void commit(List<File> files, String msg) throws VCSException { throw new VCSException("Can't commit file with dummy VCS"); } - + /** * Add and commit file in server repository * @param files list of file to add * @param msg message for commit - * @throws fr.ifremer.isisfish.vcs.VCSException + * @throws VCSException */ public void add(List<File> files, String msg) throws VCSException { throw new VCSException("Can't add file with dummy VCS"); } /** - * get repository module on server and put it in destDir - * @param destDir destination directory - * @param module module name - * @param b // FIXME - * @throws fr.ifremer.isisfish.vcs.VCSException + * Get repository module on server and put it in destDir. + * + * @param tag destination directory + * @param b + * @throws VCSException */ public void checkout(VersionNumber tag, boolean b) throws VCSException { throw new VCSException("Can't checkout with dummy VCS"); @@ -119,26 +114,28 @@ * Delete and commit files in server repository * @param files file to delete * @param msg message for commit - * @throws fr.ifremer.isisfish.vcs.VCSException + * @throws VCSException */ public void delete(List<File> files, String msg) throws VCSException { - // do nothing + // do nothing } /** - * show diff between local file and repository file + * Show diff between local file and repository file. + * * @param file - * @return - * @throws fr.ifremer.isisfish.vcs.VCSException + * @return diff + * @throws VCSException */ public String getDiff(File file) throws VCSException { throw new VCSException("Can't diff with dummy VCS"); } /** - * Return list of all file on directory on remote server + * Return list of all file on directory on remote server. + * * @param directory - * @return + * @return files list */ public List<String> getFileList(File directory) throws VCSException { List<String> result = new ArrayList<String>(); @@ -147,17 +144,17 @@ /** * Get connection state. - * @return true if server is connectable + * @return true if server is connected */ public boolean isConnected() { - return false; + return false; } - + /** * Check if file is available on server * @param file file to check * @return true if file available - * @throws fr.ifremer.isisfish.vcs.VCSException + * @throws VCSException */ public boolean isOnRemote(File file) throws VCSException { return false; @@ -167,7 +164,7 @@ * Check if file is uptodate * @param file file to check * @return true if file is in last version - * @throws fr.ifremer.isisfish.vcs.VCSException + * @throws VCSException */ public boolean isUpToDate(File file) throws VCSException { return true; @@ -175,9 +172,9 @@ /** * Update file - * @param files file to update - * @return true if there are some merging conflict, false otherwize - * @throws fr.ifremer.isisfish.vcs.VCSException + * @param file file to update + * @return true if there are some merging conflict, false otherwise + * @throws VCSException */ public List<File> update(File file, boolean recurse) throws VCSException { throw new VCSException("Can't update file with dummy VCS"); @@ -186,6 +183,10 @@ public void checkProtocol() throws VCSException { // nothing to do } + + public void checkPath() throws VCSException { + // nothing to do + } public void checkFileStatus() throws VCSException { // nothing to do Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSSVN.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSSVN.java 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/VCSSVN.java 2008-12-11 17:26:48 UTC (rev 1660) @@ -1,4 +1,4 @@ -/* *##% GeSi +/* *##% IsisFish * Copyright (C) 2008 CodeLutin * * This program is free software: you can redistribute it and/or modify @@ -81,6 +81,17 @@ protected SVNClientManager svnManager = null; protected ConnectionState connectionState = ConnectionState.NOT_TESTED; + /** + * Constructor. + * + * @param localRepository + * @param protocol + * @param host + * @param path + * @param sshKeyFile + * @param login + * @param password + */ public VCSSVN(File localRepository, String protocol, String host, String path, File sshKeyFile, String login, String password) { super(localRepository, protocol, host, path, sshKeyFile, login, @@ -95,6 +106,12 @@ } } + /** + * Return svnkit SVNManager. + * + * @see SVNClientManager + * @return SVNManager instance + */ protected SVNClientManager getSVNManager() { if (svnManager == null) { String login = getLogin(); @@ -102,11 +119,11 @@ if (getProtocol().contains("ssh")) { ISVNOptions options = SVNWCUtil.createDefaultOptions(true); - // options.setPropertyValue("svnkit.ssh2.key", getSshKeyFile().getAbsolutePath()); - // options.setPropertyValue("svnkit.ssh2.username", login); - // if (passwd != null && !"".equals(passwd)) { - // options.setPropertyValue("svnkit.ssh2.passphrase", passwd); - // } + // options.setPropertyValue("svnkit.ssh2.key", getSshKeyFile().getAbsolutePath()); + // options.setPropertyValue("svnkit.ssh2.username", login); + // if (passwd != null && !"".equals(passwd)) { + // options.setPropertyValue("svnkit.ssh2.passphrase", passwd); + // } ISVNAuthenticationManager auth = SVNWCUtil .createDefaultAuthenticationManager(SVNWCUtil .getDefaultConfigurationDirectory(), login, @@ -122,8 +139,10 @@ return svnManager; } - /* - * @see org.codelutin.gesi.vcs.VCS#isValidLocalRepository() + /** + * Return true, if local repository is valid repository for actual vcs. + * + * @return validity */ @Override public boolean isValidLocalRepository() { @@ -133,8 +152,10 @@ return result; } - /* - * @see org.codelutin.gesi.vcs.VCS#isConnected() + /** + * Get connection state. + * + * @return true if server is connected */ @Override public boolean isConnected() { @@ -144,12 +165,16 @@ getSVNManager().getWCClient().doGetProperty(url, "", SVNRevision.HEAD, SVNRevision.HEAD); connectionState = ConnectionState.ON_LINE; - log.info(_( - "Connection to serveur available, switch on line: %s", - getRemoteRepository())); + + if (log.isInfoEnabled()) { + log.info(_("isisfish.vcs.vcssvn.isconnected.switchto", + getRemoteRepository())); + } } catch (SVNException eee) { - log.info(_("Can't connect to serveur, switch to off line: %s", - getRemoteRepository())); + if (log.isWarnEnabled()) { + log.warn(_("isisfish.vcs.vcssvn.isconnected.switchoff", + getRemoteRepository())); + } connectionState = ConnectionState.OFF_LINE; } } @@ -157,71 +182,72 @@ return result; } - /* - * @see org.codelutin.gesi.vcs.VCS#checkProtocol() + /** + * Verifie la connexion et si le protocole a change, switch le repository + * pour utiliser le nouveau protocole. Si on est en mode interface (mode + * graphique) et que le switch se passe mal, demande a l'utilisateur + * de nouvelle valeur pour le protocole (+ identifiant, ...) + * @throws VCSException */ @Override public void checkProtocol() throws VCSException { + + // on doit verifier ici que seul le protocole a change + // le doRelocate de svn, ne permet de ne change que + // le protocol ou host par exemple + // dans le cas d'un changement de path, le do relocate + // echoue (operation non permise) + try { + // test que les protocoles, userInfo, host, port sont egaux. + + // copies locales File localRoot = getLocalRepository(); SVNInfo info = getSVNManager().getWCClient().doInfo(localRoot, SVNRevision.WORKING); SVNURL url = info.getURL(); - // FIXME path seems to appear twice - //SVNURL rootUrl = info.getRepositoryRootURL(); - //String path = url.toDecodedString().substring( - // rootUrl.toDecodedString().length()); - String path = url.getPath().substring( - getPath().length()); - - // // si un des constituants de l'url a change on fait un switch relocate - // boolean mustSwitch = false; - // if (!url.getProtocol().equals(getProtocol())) { - // log.info(_("repository protocol change from %s to %s", - // url.getProtocol(), getProtocol())); - // mustSwitch = true; - // } - // if (!url.getUserInfo() != null !url.getUserInfo().equals(getLogin())) { - // log.info(_("repository user change from %s to %s", - // url.getUserInfo(), getLogin())); - // mustSwitch = true; - // } - // if (!url.getHost().equals(getHost())) { - // log.info(_("repository host change from %s to %s", - // url.getHost(), getHost())); - // mustSwitch = true; - // } - // - // if (mustSwitch) { + // url distante (suposée) SVNURL newUrl = getRemoteURL(); - newUrl = newUrl.appendPath(path, false); - if (!url.equals(newUrl)) { + + // hack just for doRelocate to work + newUrl = newUrl.setPath(url.getPath(), false); + + if (!url.getProtocol().equals(newUrl.getProtocol()) // http, svn ... + || (url.getUserInfo() == null && newUrl.getUserInfo() != url + .getUserInfo()) // username + || (url.getUserInfo() != null && !url.getUserInfo().equals( + newUrl.getUserInfo())) // username + || url.getPort() != newUrl.getPort() // 80 + || !url.getHost().equals(newUrl.getHost())) { if (fireAction(VCSActionEvent.SWITCH_PROTOCOL)) { - // String path = url.getPath(); - // int port = url.getPort(); - // SVNURL newUrl = SVNURL.create(getProtocol(), getLogin(), - // getHost(), port, path, true); - log.info(_("Switch repository %s from %s to %s", localRoot, - url, newUrl)); + if (log.isInfoEnabled()) { + log.info(_("isisfish.vcs.vcssvn.checkProtocol.relocate", + localRoot, url, newUrl)); + } + + // le relocate de SVNKit + // ne supporte que le changement de protocole/host/port + // pas le path getSVNManager().getUpdateClient().doRelocate(localRoot, url, newUrl, true); } } - } catch (SVNException eee) { - throw new VCSException( - _("Can't get address on serveur of local repository"), eee); + } catch (SVNException e) { + throw new VCSException(_("isisfish.vcs.vcssvn.checkProtocol.error"), e); } - } /** - * Verifie si tous les fichiers du repository local sont les dernieres + * Vérifie si tous les fichiers du repository local sont les dernieres * version par rapport au serveur. Si ce n'est pas le cas et que l'on est * en mode interactif (mode graphique), on lui propose de mettre a jour * les fichiers, avec la possibilite de voir les changements sur les * fichiers + * + * @throws VCSException */ + @Override public void checkFileStatus() throws VCSException { Map<File, SVNStatus> status = getRemoteStatus(null, true); // si des fichiers ont ete mis a jour sur le serveur on se synchronise @@ -313,15 +339,14 @@ } /* - * @see org.codelutin.gesi.vcs.VCS#commit(java.util.List, java.lang.String) + * @see org.codelutin.isisfish.vcs.VCS#commit(java.util.List, java.lang.String) */ @Override public void commit(List<File> files, String msg) throws VCSException { // if can't commit if (!isWriteable()) { - throw new VCSException( - "You can't commit file, this repository is readonly"); + throw new VCSException(_("isisfish.vcs.vcssvn.commit.errorreadonly")); } // list to array @@ -364,18 +389,18 @@ false, // force SVNDepth.INFINITY); // depth - if (log.isDebugEnabled()) { - log.debug(_("to revision %d", commitInfo.getNewRevision())); + if (log.isInfoEnabled()) { + log.info(_("isisfish.vcs.vcssvn.global.torevision", commitInfo + .getNewRevision())); } - } catch (SVNException eee) { - throw new VCSException("Can't commit files", eee); + } catch (SVNException e) { + throw new VCSException(_("isisfish.vcs.vcssvn.commit.error"), e); } } public void add(List<File> files, String msg) throws VCSException { if (!isWriteable()) { - throw new VCSException( - "You can't add file, this repository is readonly"); + throw new VCSException(_("isisfish.vcs.vcssvn.add.errorreadonly")); } try { if (fireAction(VCSActionEvent.ADD, files.toArray(new File[files @@ -402,12 +427,12 @@ commitWithoutCheck(files, msg); } } catch (SVNException eee) { - throw new VCSException("Can't add file", eee); + throw new VCSException(_("isisfish.vcs.vcssvn.add.error"), eee); } } /* - * @see org.codelutin.gesi.vcs.VCS#checkout(org.codelutin.util.VersionNumber, boolean) + * @see org.codelutin.isisfish.vcs.VCS#checkout(org.codelutin.util.VersionNumber, boolean) */ @Override public void checkout(VersionNumber tag, boolean recurse) @@ -437,19 +462,20 @@ SVNDepth.INFINITY, // SVNDepth depth true); // boolean allowUnversionedObstructions - if (log.isDebugEnabled()) { - log.debug(_("to revision %d", newRevision)); + if (log.isInfoEnabled()) { + log + .info(_("isisfish.vcs.vcssvn.global.torevision", + newRevision)); } } } catch (SVNException eee) { - throw new VCSException(_("Can't checkout"), eee); + throw new VCSException(_("isisfish.vcs.vcssvn.checkout.error"), eee); } } public void delete(List<File> files, String msg) throws VCSException { if (!isWriteable()) { - throw new VCSException( - "You can't delete file, this repository is readonly"); + throw new VCSException(_("isisfish.vcs.vcssvn.delete.errorreadonly")); } try { if (fireAction(VCSActionEvent.DELETE, files.toArray(new File[files @@ -462,7 +488,7 @@ commitWithoutCheck(files, msg); } } catch (SVNException eee) { - throw new VCSException("Can't add file", eee); + throw new VCSException(_("isisfish.vcs.vcssvn.delete.error"), eee); } } @@ -532,7 +558,7 @@ return result; } catch (SVNException eee) { - throw new VCSException("Can't status file", eee); + throw new VCSException(_("isisfish.vcs.vcssvn.localstatus.error"), eee); } } @@ -598,7 +624,7 @@ return result; } catch (SVNException eee) { - throw new VCSException("Can't status file", eee); + throw new VCSException(_("isisfish.vcs.vcssvn.remotestatus.error"), eee); } } @@ -613,7 +639,7 @@ public Map<File, String> getChanglog(List<File> files) throws VCSException { throw new UnsupportedOperationException("Not supported yet."); - + /*final Map<File, String> changLog = new HashMap<File, String>(); try { @@ -623,7 +649,7 @@ // Handler ISVNLogEntryHandler handler = new ISVNLogEntryHandler() { - + @Override public void handleLogEntry(SVNLogEntry logEntry) throws SVNException { @@ -700,16 +726,16 @@ byte1.close(); } catch (SVNException e) { - throw new VCSException(_("Can't get diff"), e); + throw new VCSException(_("isisfish.vcs.vcssvn.diff.error"), e); } catch (IOException e) { - throw new VCSException(_("Can't get diff"), e); + throw new VCSException(_("isisfish.vcs.vcssvn.diff.error"), e); } return diff; } /* - * @see org.codelutin.gesi.vcs.VCS#getFileList(java.io.File) + * @see org.codelutin.isisfish.vcs.VCS#getFileList(java.io.File) */ @Override public List<String> getFileList(File directory) throws VCSException { @@ -746,7 +772,7 @@ SVNDirEntry.DIRENT_ALL, // int entryFields, handler); } catch (SVNException e) { - throw new VCSException(_("Can't list files"), e); + throw new VCSException(_("isisfish.vcs.vcssvn.list.error"), e); } return files; @@ -769,8 +795,8 @@ // log if (log.isDebugEnabled()) { - log.debug(_("status for %s is %s", status.getFile() - .getAbsolutePath(), status + log.debug(_("isisfish.vcs.vcssvn.global.filestatus", status + .getFile().getAbsolutePath(), status .getRemoteContentsStatus().toString())); } @@ -779,8 +805,9 @@ // log if (log.isDebugEnabled()) { - log.debug(_("add %s as updated file", status - .getFile().getAbsolutePath())); + log.debug(_( + "isisfish.vcs.vcssvn.global.foundUpdatedFile", + status.getFile().getAbsolutePath())); } result.add(status.getFile()); @@ -801,7 +828,7 @@ return result; } catch (SVNException eee) { - throw new VCSException("Can't status file", eee); + throw new VCSException(_("isisfish.vcs.vcssvn.getupdate.error"), eee); } } @@ -812,13 +839,13 @@ * @throws VCSException */ public boolean haveUpdate() throws VCSException { - + // c'est juste si la liste renvoyé par getUpdatedFile() n'est pas vide ? List<File> updatedFiles = getUpdatedFile(); - + boolean result = false; - - if(updatedFiles != null && !updatedFiles.isEmpty()) { + + if (updatedFiles != null && !updatedFiles.isEmpty()) { result = true; } return result; @@ -832,29 +859,35 @@ * @throws VCSException */ public boolean isOnRemote(File file) throws VCSException { - + File localFile = file; if (localFile == null) { localFile = getLocalRepository(); } - + boolean result = false; try { SVNStatusClient statusClient = getSVNManager().getStatusClient(); - SVNStatus status = statusClient.doStatus(localFile, true /*remote*/); - + SVNStatus status = statusClient + .doStatus(localFile, true /*remote*/); + SVNStatusType localStatus = status.getContentsStatus(); SVNStatusType remoteStatus = status.getRemoteContentsStatus(); - - if(log.isDebugEnabled()) { - log.debug(_("file %s status is (l:%s/r:%s)",localFile.getAbsolutePath(),localStatus, remoteStatus)); + + if (log.isDebugEnabled()) { + log + .debug(_( + "isisfish.vcs.vcssvn.global.filelocalandremotestatus", + localFile.getAbsolutePath(), localStatus, + remoteStatus)); } - + // don't return true if: // - file is locally added // - file is remotely deleted - if(!localStatus.equals(SVNStatusType.STATUS_ADDED) && !remoteStatus.equals(SVNStatusType.STATUS_DELETED)) { + if (!localStatus.equals(SVNStatusType.STATUS_ADDED) + && !remoteStatus.equals(SVNStatusType.STATUS_DELETED)) { result = true; } @@ -862,11 +895,12 @@ // catch exception // if exception, file doesn't exists on server // result is still 'false' - if(log.isDebugEnabled()) { - log.debug(_("file %s is not on server",localFile.getAbsolutePath()),e); + if (log.isDebugEnabled()) { + log.debug(_("isisfish.vcs.vcssvn.isonremote.error", localFile + .getAbsolutePath()), e); } } - + return result; } @@ -879,36 +913,38 @@ */ @Override public boolean isUpToDate(File file) throws VCSException { - + File localFile = file; if (localFile == null) { localFile = getLocalRepository(); } - + boolean result = false; - + try { SVNStatusClient statusClient = getSVNManager().getStatusClient(); - SVNStatus status = statusClient.doStatus(localFile, true /*remote*/); + SVNStatus status = statusClient + .doStatus(localFile, true /*remote*/); SVNStatusType localStatus = status.getContentsStatus(); SVNStatusType remoteStatus = status.getRemoteContentsStatus(); - + // TODO peut on dire que le fichier est à jour // si le status local est normal et le distant est none - if (localStatus == SVNStatusType.STATUS_NORMAL && remoteStatus == SVNStatusType.STATUS_NONE) { + if (localStatus == SVNStatusType.STATUS_NORMAL + && remoteStatus == SVNStatusType.STATUS_NONE) { result = true; } } catch (SVNException eee) { - throw new VCSException(_("Can't get file status"), eee); + throw new VCSException(_("isisfish.vcs.vcssvn.isuptodate.error"), eee); } - + return result; } /* - * @see org.codelutin.gesi.vcs.VCS#update(java.io.File, boolean) + * @see org.codelutin.isisfish.vcs.VCS#update(java.io.File, boolean) */ @Override public List<File> update(File file, boolean recurse) throws VCSException { @@ -920,8 +956,7 @@ localFile = getLocalRepository(); } if (!accept(localFile)) { - throw new VCSException( - _("Can't update file that not in local repository")); + throw new VCSException(_("isisfish.vcs.vcssvn.update.notinlocal")); } if (fireAction(VCSActionEvent.UPDATE, localFile)) { // si le repertoire pere, n'est pas encore dans le repo local @@ -941,7 +976,8 @@ false); // boolean depthIsSticky if (log.isInfoEnabled()) { - log.info(_("to revision %d", newRevision)); + log.info(_("isisfish.vcs.vcssvn.global.torevision", + newRevision)); } // recherche de tous les fichiers locaux en conflit @@ -961,14 +997,14 @@ } } - } catch (SVNException eee) { - throw new VCSException("Can't update files", eee); + } catch (SVNException e) { + throw new VCSException(_("isisfish.vcs.vcssvn.update.error"), e); } return result; } /* - * @see org.codelutin.gesi.vcs.VCS#isWriteable() + * @see org.codelutin.isisfish.vcs.VCS#isWriteable() */ @Override public boolean isWriteable() throws VCSException { @@ -993,7 +1029,7 @@ } /* - * @see org.codelutin.gesi.vcs.VCS#isTag(org.codelutin.util.VersionNumber) + * @see org.codelutin.isisfish.vcs.VCS#isTag(org.codelutin.util.VersionNumber) */ @Override public boolean isTag(VersionNumber version) throws VCSException { @@ -1008,14 +1044,14 @@ // est leve, et donc result reste a faux result = info != null; } catch (SVNException eee) { - log.debug(_("Tag %s don't exist", version)); + log.debug(_("isisfish.vcs.vcssvn.istag.notexist", version)); } } return result; } /* - * @see org.codelutin.gesi.vcs.VCS#getTag() + * @see org.codelutin.isisfish.vcs.VCS#getTag() */ @Override public String getTag() throws VCSException { @@ -1034,13 +1070,12 @@ } return result; } catch (SVNException eee) { - throw new VCSException( - _("Can't get address on serveur of local repository"), eee); + throw new VCSException(_("isisfish.vcs.vcssvn.gettag.error"), eee); } } /* - * @see org.codelutin.gesi.vcs.VCS#setTag(org.codelutin.util.VersionNumber) + * @see org.codelutin.isisfish.vcs.VCS#setTag(org.codelutin.util.VersionNumber) */ @Override public void setTag(VersionNumber version) throws VCSException { @@ -1050,8 +1085,8 @@ tag = "/tags/" + version; } - String currantTag = getTag(); - if (!tag.equals(currantTag)) { + String currentTag = getTag(); + if (!tag.equals(currentTag)) { // on ne fait le switch que si le tag change rellement, sinon // c equivalent a faire un update, ce que l'on ne souhaite pas // forcement @@ -1062,8 +1097,8 @@ newUrl = newUrl.appendPath(tag, true); if (log.isInfoEnabled()) { - log.info(_("Switch repository tag from %s to %s", - currantTag, tag)); + log.info(_("isisfish.vcs.vcssvn.settag.switchfromto", + currentTag, tag)); } //getSVNManager().getUpdateClient().doSwitch( // localRoot, newUrl, SVNRevision.HEAD, true); @@ -1080,13 +1115,13 @@ true);// boolean depthIsSticky if (log.isInfoEnabled()) { - log.info(_("to revision %d", newRevision)); + log.info(_("isisfish.vcs.vcssvn.global.torevision", + newRevision)); } } } } catch (SVNException eee) { - throw new VCSException( - _("Can't get address on serveur of local repository"), eee); + throw new VCSException(_("isisfish.vcs.vcssvn.setTag.error"), eee); } } Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2008-12-11 17:26:48 UTC (rev 1660) @@ -4,30 +4,22 @@ Can''t\ evaluate\ simulation\ prescript= Can't\ add\ result\ '%1$s'\ at\ date\ %2$s=Can't add result '%1$s' at date %2$s Can't\ add\ simulation\:\ = -Can't\ checkout= -Can't\ connect\ to\ serveur,\ switch\ to\ off\ line\:\ %s= Can't\ create\ simulation\ logger=Can't create simulation logger Can't\ delete\ simulation\ %s\ = Can't\ do\ post\ action\ %s= Can't\ do\ simulation\ %s= Can't\ export\ simulation\ %s= -Can't\ get\ address\ on\ serveur\ of\ local\ repository= Can't\ get\ changlog= -Can't\ get\ diff= -Can't\ get\ file\ status= Can't\ get\ result\:\ %1$s=Can't get result\: %1$s Can't\ instanciate\ export\ %1$s=Can't instanciate export %1$s Can't\ instanciate\ wanted\ VCS\ (%s),\ use\ default= Can't\ instantiate\ %s= -Can't\ list\ files= Can't\ open\ log\ for\ %s= Can't\ simulate\ %s= Can't\ start\ simulation,\ bad\ id\:\ %s= -Can't\ update\ file\ that\ not\ in\ local\ repository= Check\ state\ of\ local\ repository\:\ %s= Checkout\ pom.xml\ to\ %s= Clear\ done\ jobs= -Connection\ to\ serveur\ available,\ switch\ on\ line\:\ %s= Could\ not\ found\ formule\ type\ %s\ autorised\ type\ are\ %s= Error\ during\ vcs\ initialisation= Generate\ next\ simulation= @@ -54,15 +46,11 @@ Stop\ simulation\ plan,\ because\ can't\ call\ afterSimulation\ correctly\ on\ plan\ %s= Stop\ the\ process= SubProcess\ start\:\ %s\ %s= -Switch\ repository\ %s\ from\ %s\ to\ %s= -Switch\ repository\ tag\ from\ %s\ to\ %s= Switch\ repository\ type\ to\ none= -Tag\ %s\ don't\ exist= The\ equation\ used\ is\ the\ population's\ growth\ curve,\ it\ needs\ to\ be\ defined\ first.= Use\ branches,\ switch\ not\ needed= User\ stop\ simulation\ %s= Your\ database\ repository\:\ %s\\n\ don't\ use\ correct= -add\ %s\ as\ updated\ file= could\ not\ close\ reader\ %1$s=could not close reader %1$s could\ not\ create\ simulation\ filter\ model\ for\ reason\ %1$s=could not create simulation filter model for reason %1$s could\ not\ filter\ on\ simulations=could not filter on simulations @@ -74,8 +62,6 @@ destination\ already\ exists\ %s\ use\ 'force'\ argument\ to\ force\ overwrite= destination\ already\ exists\ %s\ use\ \\'force\\'\ argument\ to\ force\ overwrite= directory\ %s\ must\ be\ a\ directory= -file\ %s\ is\ not\ on\ server= -file\ %s\ status\ is\ (l\:%s/r\:%s)= filter\ loaded\ in\ %1$s\ ms\ \:\ found\ %2$s\ lines.=filter loaded in %1$s ms \: found %2$s lines. isisfish.about.site=http\://isisfish.labs.libre-entreprise.org - by B.Poussin isisfish.about.text=Isis-Fish Simulator @@ -259,7 +245,6 @@ isisfish.error.init.remove.button=could not init remove button (button or list is null) button \: %1$s, list \: %2$s isisfish.error.instanciate=Can't instanciate %1$s isisfish.error.instanciate.export=Can't instanciate export %1$s -isisfish.error.integer.positif=Your input must be a positif integer (>1) isisfish.error.invalid.costs.fix=les co\u00FBts fixes sont invalides isisfish.error.invalid.distribution.recruitment=distribution de recrutement invalide isisfish.error.invalid.equation=Equation invalid @@ -281,13 +266,12 @@ isisfish.error.log.console.dispose=Une erreur est survenue pendant la fermeture de la console %1$s de log, raison %2$s isisfish.error.log.createAppender=could not create appender [%1$s] \: %2$s for reason %3$s isisfish.error.log.foundAppender=\=could not found log appender %1$s for category %2$s -isisfish.error.matrix.more.2d=Matrice de plus de 2 dimensions\!\!\\nSelectionnez moins d'\u00E9l\u00E9ments ou utilisez l'op\u00E9rateur somme. +isisfish.error.matrix.more.2d=Matrice de plus de 2 dimensions\!\!\nS\u00E9lectionnez moins d'\u00E9l\u00E9ments ou utilisez l'op\u00E9rateur somme. isisfish.error.migration.negative=Migration negative isisfish.error.no.matrix=No matrix for\: isisfish.error.no.null.time.step=Error, the time step should not be null isisfish.error.no.sector=No sector defined isisfish.error.no.select.simulation=could not select simulation -isisfish.error.no.selected.simulation=No Simulation selected isisfish.error.no.target.species=no target species in %1$s for %2$s isisfish.error.not.found.class=this class does not isisfish.error.not.found.code=could not found codeclass for %1$s @@ -325,7 +309,6 @@ isisfish.error.save.simulation.parameters=Can't save simulation parameters in file %1$s isisfish.error.script.create=isisfish.error.script.create isisfish.error.script.delete=Can't delete file %1$s for reason %2$s -isisfish.error.script.diff=Can't diff file %1$s for reason %2$s isisfish.error.script.import=Can't import file for reason %1$s isisfish.error.script.load=Can't load file %1$s for reason %2$s isisfish.error.script.save=Can't save file %1$s for reason %2$s @@ -533,7 +516,6 @@ isisfish.message.confirm.remove.script=Do you want to remove script ? '%1$s' isisfish.message.copy.finished=Copy finished isisfish.message.copy.region=Copy region to %1$s -isisfish.message.create.region.canceled=Create region canceled isisfish.message.creating.region=Creating region %1$s isisfish.message.creation.done=creation done %1$s isisfish.message.creation.finished=Creation finished @@ -541,8 +523,7 @@ isisfish.message.delete.entities=Delete entities isisfish.message.delete.entity=Delete entity isisfish.message.delete.finished=delete finished -isisfish.message.delete.object=To delete object %1$s, all next object will be deleted\\n\\n -isisfish.message.diff.finished=file in state %1$s +isisfish.message.delete.object=To delete object %1$s, all next object will be deleted\n\n isisfish.message.evaluation.finished=evaluation finished isisfish.message.export.done=export done isisfish.message.export.zip=Export to zip file %1$s @@ -555,17 +536,14 @@ isisfish.message.import.region.zipped=Zipped Region isisfish.message.import.scripts.file.cancelled=Import scripts cancelled isisfish.message.import.xml.v2.file=Import xml v2 file -isisfish.message.import.xml.v2.file\ = isisfish.message.import.zip=Import zip file isisfish.message.load.finished=load finished isisfish.message.load.map=Try to load map file\: %1$s (%2$s, %3$s) -isisfish.message.load.region.canceled=load region canceled isisfish.message.loading.old.simulation=Loading old simulation ... isisfish.message.loading.region=Loading region ... isisfish.message.name.imported.region=Enter name for imported region isisfish.message.new.filename=Enter the name of the new file. (use only chars and _ and start with uppercase) isisfish.message.new.region.name=Enter new region name -isisfish.message.no.diff=No diff found for file %1$s, since it is a %2$s isisfish.message.old.simulation.loaded=Old simulation loaded isisfish.message.page.modified=This page has been modified, do you want to save it ? isisfish.message.presimulation.script.execution=Presimulation Script execution @@ -616,7 +594,6 @@ isisfish.month.november=november isisfish.month.october=october isisfish.month.september=september -isisfish.notitle=/ isisfish.params.changeLogLev=Change from level '%1$s' to level '%2$s' isisfish.params.clearFilter=Clear filter isisfish.params.description=Description @@ -629,11 +606,11 @@ isisfish.params.ruleParameters=Rule's parameters isisfish.params.simulationName=Simulation name isisfish.params.title=Parameters -isisfish.params.toString.fishery=P\u00EAcherie\: %1$s\\n\\n +isisfish.params.toString.fishery=P\u00EAcherie\: %1$s\n\n isisfish.params.toString.lib.logger.level=Level of libraries' logger %1$s -isisfish.params.toString.number.years=Number of years\: %1$s\\n\\n +isisfish.params.toString.number.years=Number of years\: %1$s\n\n isisfish.params.toString.plan=Plan\: %1$s -isisfish.params.toString.plan.number=Analyse plan sequence number\: %1$s\\n\\n +isisfish.params.toString.plan.number=Analyse plan sequence number\: %1$s\n\n isisfish.params.toString.populations=Populations\: isisfish.params.toString.rule=Rule\: %1$s isisfish.params.toString.script.logger.level=Level of scripts' logger %1$s @@ -736,7 +713,7 @@ isisfish.result.datas=Datas isisfish.result.datasRadioButton=defaultToolTip-fr.ifremer.resultat.ResultatEdit.donneeRadioButton isisfish.result.desktopPane=defaultToolTip-fr.ifremer.resultat.ResultatView.desktopPane -isisfish.result.dimension\ =Dimension +isisfish.result.dimension=Dimension isisfish.result.end.simulation=En fin de Simulation\: isisfish.result.export=Export isisfish.result.export.file=Export text file @@ -937,6 +914,34 @@ isisfish.vcs.updateconfirm.ok=ok isisfish.vcs.updateconfirm.tooltip.checkAll= isisfish.vcs.updaterepository.confirm=Your repository is not up to date.\nDo you want to update your repository ?\n\nRemote modified file is \:\n%s +isisfish.vcs.vcssvn.add.error=Can't add file +isisfish.vcs.vcssvn.add.errorreadonly=You can't add file, this repository is readonly +isisfish.vcs.vcssvn.checkProtocol.error=Can't get address on serveur of local repository +isisfish.vcs.vcssvn.checkProtocol.relocate=Relocate repository %s from %s to %s +isisfish.vcs.vcssvn.checkout.error=Can't checkout +isisfish.vcs.vcssvn.commit.error=Can't commit files +isisfish.vcs.vcssvn.commit.errorreadonly=You can't commit file, this repository is readonly +isisfish.vcs.vcssvn.delete.error=Can't delete file +isisfish.vcs.vcssvn.delete.errorreadonly=You can't delete file, this repository is readonly +isisfish.vcs.vcssvn.diff.error=Can't get diff +isisfish.vcs.vcssvn.gettag.error=Can't get address on serveur of local repository +isisfish.vcs.vcssvn.getupdate.error=Can't status file +isisfish.vcs.vcssvn.global.filelocalandremotestatus=file %s status is (l\:%s/r\:%s) +isisfish.vcs.vcssvn.global.filestatus=status for %s is %s +isisfish.vcs.vcssvn.global.foundUpdatedFile=add %s as updated file +isisfish.vcs.vcssvn.global.torevision=At revision \: %d +isisfish.vcs.vcssvn.isconnected.switchoff=Can't connect to serveur, switch to off line\: %s +isisfish.vcs.vcssvn.isconnected.switchto=Connection to serveur available, switch on line\: %s +isisfish.vcs.vcssvn.isonremote.error=file %s is not on server +isisfish.vcs.vcssvn.istag.notexist=Tag %s don't exist +isisfish.vcs.vcssvn.isuptodate.error=Can't get file status +isisfish.vcs.vcssvn.list.error=Can't list files +isisfish.vcs.vcssvn.localstatus.error=Can't status file +isisfish.vcs.vcssvn.remotestatus.error=Can't status file +isisfish.vcs.vcssvn.setTag.error=Can't get address on server of local repository +isisfish.vcs.vcssvn.settag.switchfromto=Switch repository tag from %s to %s +isisfish.vcs.vcssvn.update.error=Can't update files +isisfish.vcs.vcssvn.update.notinlocal=Can't update file that not in local repository isisfish.versionStorage.removed=Removed isisfish.vesselType.activityRange=Activity range isisfish.vesselType.comments=Comments @@ -987,12 +992,5 @@ isisfish.zone.comments=Comments isisfish.zone.name=Name not\ started= -observe.message.quit.edit= -observe.message.title= region\ already\ exists\ %s\ use\ 'force'\ argument\ to\ force\ overwrite= -repository\ host\ change\ from\ %s\ to\ %s= -repository\ protocol\ change\ from\ %s\ to\ %s= -repository\ user\ change\ from\ %s\ to\ %s= simulate\ %s\ with\ file\ %s= -status\ for\ %s\ is\ %s= -to\ revision\ %d= Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2008-12-11 15:35:31 UTC (rev 1659) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2008-12-11 17:26:48 UTC (rev 1660) @@ -4,30 +4,22 @@ Can''t\ evaluate\ simulation\ prescript= Can't\ add\ result\ '%1$s'\ at\ date\ %2$s=Can't add result '%1$s' at date %2$s Can't\ add\ simulation\:\ = -Can't\ checkout= -Can't\ connect\ to\ serveur,\ switch\ to\ off\ line\:\ %s= Can't\ create\ simulation\ logger=Can't create simulation logger Can't\ delete\ simulation\ %s\ = Can't\ do\ post\ action\ %s= Can't\ do\ simulation\ %s= Can't\ export\ simulation\ %s= -Can't\ get\ address\ on\ serveur\ of\ local\ repository= Can't\ get\ changlog=Impossible d'obtenir de changelog -Can't\ get\ diff=Impossible d'obtenir de diff de fichiers -Can't\ get\ file\ status=Impossible d'obtenir le statut Can't\ get\ result\:\ %1$s=Can't get result\: %1$s Can't\ instanciate\ export\ %1$s=Can't instanciate export %1$s Can't\ instanciate\ wanted\ VCS\ (%s),\ use\ default= Can't\ instantiate\ %s= -Can't\ list\ files=Impossible de lister les fichiers Can't\ open\ log\ for\ %s= Can't\ simulate\ %s= Can't\ start\ simulation,\ bad\ id\:\ %s= -Can't\ update\ file\ that\ not\ in\ local\ repository=Impossible de mettre \u00E0 jour un fichier hors du d\u00E9p\u00F4t Check\ state\ of\ local\ repository\:\ %s= Checkout\ pom.xml\ to\ %s= Clear\ done\ jobs= -Connection\ to\ serveur\ available,\ switch\ on\ line\:\ %s= Could\ not\ found\ formule\ type\ %s\ autorised\ type\ are\ %s= Error\ during\ vcs\ initialisation= Generate\ next\ simulation= @@ -54,15 +46,11 @@ Stop\ simulation\ plan,\ because\ can't\ call\ afterSimulation\ correctly\ on\ plan\ %s= Stop\ the\ process= SubProcess\ start\:\ %s\ %s= -Switch\ repository\ %s\ from\ %s\ to\ %s= -Switch\ repository\ tag\ from\ %s\ to\ %s= Switch\ repository\ type\ to\ none= -Tag\ %s\ don't\ exist= The\ equation\ used\ is\ the\ population's\ growth\ curve,\ it\ needs\ to\ be\ defined\ first.= Use\ branches,\ switch\ not\ needed= User\ stop\ simulation\ %s= Your\ database\ repository\:\ %s\\n\ don't\ use\ correct= -add\ %s\ as\ updated\ file=Ajout du fichier %s could\ not\ close\ reader\ %1$s=could not close reader %1$s could\ not\ create\ simulation\ filter\ model\ for\ reason\ %1$s=could not create simulation filter model for reason %1$s could\ not\ filter\ on\ simulations=could not filter on simulations @@ -74,8 +62,6 @@ destination\ already\ exists\ %s\ use\ 'force'\ argument\ to\ force\ overwrite= destination\ already\ exists\ %s\ use\ \\'force\\'\ argument\ to\ force\ overwrite= directory\ %s\ must\ be\ a\ directory= -file\ %s\ is\ not\ on\ server=Le fichier %s n'est pas pr\u00E9sent sur le serveur -file\ %s\ status\ is\ (l\:%s/r\:%s)=Le fichier %s a pour statut (l\:%s/d\:%s) filter\ loaded\ in\ %1$s\ ms\ \:\ found\ %2$s\ lines.=filter loaded in %1$s ms \: found %2$s lines. isisfish.about.site=http\://isisfish.labs.libre-entreprise.org - par B.Poussin isisfish.about.text=Simulateur Isis-Fish @@ -259,7 +245,6 @@ isisfish.error.init.remove.button=could not init remove button (button or list is null) button \: %1$s, list \: %2$s isisfish.error.instanciate=Can't instanciate %1$s isisfish.error.instanciate.export=Can't instanciate export %1$s -isisfish.error.integer.positif=Your input must be a positif integer (>1) isisfish.error.invalid.costs.fix=les co\u00FBts fixes sont invalides isisfish.error.invalid.distribution.recruitment=distribution de recrutement invalide isisfish.error.invalid.equation=Equation invalide @@ -281,13 +266,12 @@ isisfish.error.log.console.dispose=Une erreur est survenue pendant la fermeture de la console %1$s de log, raison %2$s isisfish.error.log.createAppender=n'a pas pu creer l'appender [%1$s] \: %2$s pour la raison %3$s isisfish.error.log.foundAppender=n'a pas trouve l'appender %1$s pour la categorie %2$s -isisfish.error.matrix.more.2d=Matrice de plus de 2 dimensions\!\!\\nSelectionnez moins d'\u00E9l\u00E9ments ou utilisez l'op\u00E9rateur somme. +isisfish.error.matrix.more.2d=Matrice de plus de 2 dimensions\!\!\nS\u00E9lectionnez moins d'\u00E9l\u00E9ments ou utilisez l'op\u00E9rateur somme. isisfish.error.migration.negative=Migration negative isisfish.error.no.matrix=No matrix for\: isisfish.error.no.null.time.step=Error, the time step should not be null isisfish.error.no.sector=il n'y a pas de secteur de d\u00E9finit isisfish.error.no.select.simulation=could not select simulation -isisfish.error.no.selected.simulation=No Simulation selected isisfish.error.no.target.species=no target species in %1$s for %2$s isisfish.error.not.found.class=this class does not isisfish.error.not.found.code=could not found codeclass for %1$s @@ -325,7 +309,6 @@ isisfish.error.save.simulation.parameters=Can't save simulation parameters in file %1$s isisfish.error.script.create=isisfish.error.script.create isisfish.error.script.delete=N'a pas pu supprimer le fichier %1$s pour la raison suivante %2$s -isisfish.error.script.diff=N'a pas pu calculer le diff du fichier %1$s pour la raison suivante %2$s isisfish.error.script.import=N'a pas pu importer pour la raison suivante %1$s isisfish.error.script.load=N'a pas pu charger le fichier %1$s pour la raison suivante %2$s isisfish.error.script.save=N'a pas pu sauver le fichier %1$s pour la raison suivante %2$s @@ -494,14 +477,14 @@ isisfish.launch.server.ssh.privateKeyFile=clef priv\u00E9e ssh isisfish.launch.server.ssh.publicKeyFile=clef publique ssh isisfish.launch.ssh=lecture-\u00E9criture (ssh) -isisfish.launch.start=Lancement Isis-fish ... %1$s +isisfish.launch.start=Lancement Isis-fish... %1$s isisfish.launch.stop=Stopping simulation... isisfish.launching=after init done in %1$s. isisfish.log.addAppender=ajoute un appender [%1$s] isisfish.log.body=Message \u00E0 joindre isisfish.log.closeAppender=ferme l'appender [%1$s] pour la categorie %2$s isisfish.log.mail.failed=Impossible d'envoyer le rapport par courriel. Le serveur smtp fonctionne ? (J'essaye de contacter < %1$s > smtp server) -isisfish.log.mail.send=A report has been sent to %1$s +isisfish.log.mail.send=Un rapport a \u00E9t\u00E9 envoy\u00E9 \u00E0 %1$s isisfish.log.mail.send.title=Send simulation %1$s by email isisfish.log.mailTo=Adresse du destinataire isisfish.log.removeAppender=supprime l'appender [%1$s] @@ -533,7 +516,6 @@ isisfish.message.confirm.remove.script=Voulez-vous vraiment supprimer le script ? '%1$s' isisfish.message.copy.finished=Copie termin\u00E9e isisfish.message.copy.region=Copier la r\u00E9gion vers %1$s -isisfish.message.create.region.canceled=Creation de r\u00E9gion annul\u00E9e isisfish.message.creating.region=En train de cr\u00E9er la r\u00E9gion %1$s isisfish.message.creation.done=cr\u00E9ation termin\u00E9e %1$s isisfish.message.creation.finished=Cr\u00E9ation termin\u00E9e @@ -542,7 +524,6 @@ isisfish.message.delete.entity=Supprimer l'entit\u00E9 isisfish.message.delete.finished=Suppression termin\u00E9e isisfish.message.delete.object=Pour supprimer l'objet %1$s, tous les objets suivants seront aussi supprim\u00E9s \n\n -isisfish.message.diff.finished=fichier dans l'\u00E9tat %1$s isisfish.message.evaluation.finished=\u00E9valuation termin\u00E9e isisfish.message.export.done=Export termin\u00E9 isisfish.message.export.zip=Exporter dans le fichier zip %1$s @@ -555,17 +536,14 @@ isisfish.message.import.region.zipped=Zipped Region isisfish.message.import.scripts.file.cancelled=Importation des scripts annul\u00E9 isisfish.message.import.xml.v2.file=Import xml v2 file -isisfish.message.import.xml.v2.file\ = isisfish.message.import.zip=Import zip file isisfish.message.load.finished=Chargement termin\u00E9 isisfish.message.load.map=Chargement de la carte \: %1$s (%2$s, %3$s) -isisfish.message.load.region.canceled=chargement de r\u00E9gion annul\u00E9 isisfish.message.loading.old.simulation=Chargement d'une ancienne simulation ... isisfish.message.loading.region=Chargement de la r\u00E9gion isisfish.message.name.imported.region=Entrez le nom de la r\u00E9gion \u00E0 importer isisfish.message.new.filename=Entrer le nom du nouveau du fichier.\n\t (utiliser uniquemment des caract\u00E8res et _ en commencant avec une majuscule) isisfish.message.new.region.name=Entrer le nom de la nouvell r\u00E9gion -isisfish.message.no.diff=Pas de diff\u00E9rences trouv\u00E9s pour le fichier %1$s, \u00E9tant un '%2$s' isisfish.message.old.simulation.loaded=Ancienne simulation charg\u00E9e isisfish.message.page.modified=Cette page a \u00E9t\u00E9 modifi\u00E9, voulez-vous la sauvegarder ? isisfish.message.presimulation.script.execution=Ex\u00E9cution des scripts de Presimulation @@ -586,7 +564,7 @@ isisfish.message.simulation.ended=Simulation termin\u00E9e isisfish.message.simulation.execution=Simulation execution isisfish.message.tray.disabled=Icone de notification d\u00E9sactiv\u00E9e -isisfish.message.update.finished=update finished +isisfish.message.update.finished=Mise \u00E0 jour termin\u00E9e isisfish.metier.comments=Commentaires isisfish.metier.name=Nom isisfish.metier.rangeValues=Range of values @@ -602,7 +580,7 @@ isisfish.metierSeasonInfoZone.comments=Commentaires isisfish.metierSeasonInfoZone.season=Saison isisfish.metierSeasonInfoZone.selectSeason=S\u00E9lectionnez une saison -isisfish.metierSeasonInfoZone.title=Seasons / Zones +isisfish.metierSeasonInfoZone.title=Saison / Zones isisfish.monitor.title=Application Monitor isisfish.month.april=avril isisfish.month.august=ao\u00FBt @@ -616,7 +594,6 @@ isisfish.month.november=novembre isisfish.month.october=octobre isisfish.month.september=september -isisfish.notitle=/ isisfish.params.changeLogLev=Passe du niveau '%1$s' au niveau '%2$s' isisfish.params.clearFilter=Reset filtre isisfish.params.description=Description @@ -736,7 +713,7 @@ isisfish.result.datas=Donn\u00E9es isisfish.result.datasRadioButton=defaultToolTip-fr.ifremer.resultat.ResultatEdit.donneeRadioButton isisfish.result.desktopPane=defaultToolTip-fr.ifremer.resultat.ResultatView.desktopPane -isisfish.result.dimension\ =Dimension +isisfish.result.dimension=Dimension isisfish.result.end.simulation=En fin de Simulation\: isisfish.result.export=Export isisfish.result.export.file=Exporter text file @@ -894,8 +871,8 @@ isisfish.strategyMonthInfo.proportion=Proportion isisfish.strategyMonthInfo.title=StrategyMonthInfo isisfish.strategyMonthInfo.toString=%1$s %2$s -isisfish.timeUnit.day=Day -isisfish.timeUnit.hours=Hours +isisfish.timeUnit.day=Jour +isisfish.timeUnit.hours=Heures isisfish.tray.simulation=Isis-fish - %1$s \: %2$s/%3$s isisfish.tray.simulation.no=Isis-fish - Pas de simulation isisfish.tripType.comments=Commentaires @@ -937,7 +914,35 @@ isisfish.vcs.updateconfirm.ok=confirmer isisfish.vcs.updateconfirm.tooltip.checkAll=(D\u00E9-)S\u00E9lectionner tous les scripts que vous voulez traiter isisfish.vcs.updaterepository.confirm=Votre d\u00E9p\u00F4t des scripts n'est pas \u00E0 jour.\nVoulez-vous mettre \u00E0 jour votre d\u00E9p\u00F4t ?\n\nLes fichiers modifi\u00E9s sont \:\n%s -isisfish.versionStorage.removed=Surim\u00E9 +isisfish.vcs.vcssvn.add.error=Can't add file +isisfish.vcs.vcssvn.add.errorreadonly=You can't add file, this repository is readonly +isisfish.vcs.vcssvn.checkProtocol.error=Can't get address on serveur of local repository +isisfish.vcs.vcssvn.checkProtocol.relocate=Relocate repository %s from %s to %s +isisfish.vcs.vcssvn.checkout.error=Checkout impossible +isisfish.vcs.vcssvn.commit.error=Impossible de commiter +isisfish.vcs.vcssvn.commit.errorreadonly=Vous ne pouvez pas commiter, le d\u00E9p\u00F4t est en lecture seule +isisfish.vcs.vcssvn.delete.error=Impossible de supprimer des fichiers +isisfish.vcs.vcssvn.delete.errorreadonly=Vous ne pouvez pas supprimer ce fichier, le d\u00E9p\u00F4t est en lecture seule +isisfish.vcs.vcssvn.diff.error=Impossible d'obtenir le diff +isisfish.vcs.vcssvn.gettag.error=Erreur lors de la r\u00E9cup\u00E9ration de l'adresse du d\u00E9p\u00F4t local +isisfish.vcs.vcssvn.getupdate.error=Impossible d'obtenir le statut des fichiers +isisfish.vcs.vcssvn.global.filelocalandremotestatus=Le statut du fichier %s est (l\:%s/d\:%s) +isisfish.vcs.vcssvn.global.filestatus=Le statut de %s est %s +isisfish.vcs.vcssvn.global.foundUpdatedFile=Ajout de %s comme fichier mis \u00E0 jour +isisfish.vcs.vcssvn.global.torevision=\u00C0 la r\u00E9vision \: %d +isisfish.vcs.vcssvn.isconnected.switchoff=Impossible de se connecter au serveur, passage en mode d\u00E9connect\u00E9 \: %s +isisfish.vcs.vcssvn.isconnected.switchto=Connexion au serveur disponible, passage en mode connect\u00E9 \: %s +isisfish.vcs.vcssvn.isonremote.error=Le fichier %s n'est pas sur le serveur +isisfish.vcs.vcssvn.istag.notexist=Le tag %s n'existe pas +isisfish.vcs.vcssvn.isuptodate.error=Impossible d'obtenir le statut de fichier +isisfish.vcs.vcssvn.list.error=Impossible de lister +isisfish.vcs.vcssvn.localstatus.error=Impossible d'obtenir le statut local de fichier +isisfish.vcs.vcssvn.remotestatus.error=Impossible d'obtenir le statut distant de fichier +isisfish.vcs.vcssvn.setTag.error=Erreur lors de la r\u00E9cup\u00E9ration de l'adresse du d\u00E9p\u00F4t local +isisfish.vcs.vcssvn.settag.switchfromto=Switch du tag du d\u00E9p\u00F4t de %s \u00E0 %s +isisfish.vcs.vcssvn.update.error=Impossible de mettre \u00E0 jour +isisfish.vcs.vcssvn.update.notinlocal=Impossible de mettre \u00E0 jour des fichiers qui ne sont pas pas dans le d\u00E9p\u00F4t +isisfish.versionStorage.removed=Supprim\u00E9 isisfish.vesselType.activityRange=Intervalle d'activit\u00E9 isisfish.vesselType.comments=Commentaires isisfish.vesselType.fuelCost=Co\u00FBt d'un trajet en fuel @@ -946,7 +951,7 @@ isisfish.vesselType.miniCrew=Taille minimale d'\u00E9quipage isisfish.vesselType.name=Nom isisfish.vesselType.speed=Vitesse -isisfish.welcome.menu.about=A propos +isisfish.welcome.menu.about=\u00C0 propos isisfish.welcome.menu.close=Fermer isisfish.welcome.menu.configuration=Configuration isisfish.welcome.menu.file=Fichier @@ -961,7 +966,7 @@ isisfish.welcome.menu.synchro=Synchronisation Serveur isisfish.welcome.menu.vcs.configuration=Configuration vcs isisfish.welcome.title=Simulation Ifremer -isisfish.wizardGroupCreation.allGroupsSameSize=Tous les groupes ont la meme taille +isisfish.wizardGroupCreation.allGroupsSameSize=Tous les groupes ont la m\u00EAme taille isisfish.wizardGroupCreation.allValues=Input all the values isisfish.wizardGroupCreation.computedGrowthCurve=Calcul\u00E9 par une courbe de croissance isisfish.wizardGroupCreation.firstAge=Premier age @@ -987,12 +992,5 @@ isisfish.zone.comments=Commentaires isisfish.zone.name=Nom not\ started= -observe.message.quit.edit= -observe.message.title= region\ already\ exists\ %s\ use\ 'force'\ argument\ to\ force\ overwrite= -repository\ host\ change\ from\ %s\ to\ %s= -repository\ protocol\ change\ from\ %s\ to\ %s= -repository\ user\ change\ from\ %s\ to\ %s= simulate\ %s\ with\ file\ %s= -status\ for\ %s\ is\ %s=Le statut du fichier %s est %s -to\ revision\ %d=\u00C0 la r\u00E9vision %d