Author: tchemit Date: 2012-04-06 18:05:03 +0200 (Fri, 06 Apr 2012) New Revision: 503 Url: http://forge.codelutin.com/repositories/revision/echobase/503 Log: refs #484 (add more informations in connect to db page) Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java trunk/echobase-services/src/main/resources/embedded/echobase.properties trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ConnectToDbInformations.java trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/connectToDbInformations.jsp Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-04-06 14:11:29 UTC (rev 502) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-04-06 16:05:03 UTC (rev 503) @@ -220,22 +220,35 @@ } } + public File getPilotsDirectory(File dataDirectory) { + File driverDir = new File(dataDirectory, "drivers"); + return driverDir; + } + + public String getH2PilotFilename(Properties config) { + String h2Version = config.getProperty("h2Version"); + return h2Version == null ? null : "h2-" + h2Version + ".jar"; + } + + public String getPostgresqlPilotFilename(Properties config) { + String pgVersion = config.getProperty("postgresqlVersion"); + return pgVersion == null ? null : "postgresql-" + pgVersion + ".jar"; + } + protected void copyEmbeddedFiles(File zipDirectory) throws IOException, URISyntaxException { // config to keep the echobase-embedded values (contains h2 and pg versions) Properties config = new Properties(); copyEmbeddedFiles("echobase.properties", zipDirectory, config); - String h2Version = config.getProperty("h2Version"); - String pgVersion = config.getProperty("postgresqlVersion"); copyEmbeddedFiles("startEchobase.bat", zipDirectory, null); copyEmbeddedFiles("startEchobase.sh", zipDirectory, null); copyEmbeddedFiles("README.txt", zipDirectory, null); - File driverDir = new File(zipDirectory, "drivers"); + File driverDir = getPilotsDirectory(zipDirectory); FileUtil.createDirectoryIfNecessary(driverDir); - copyEmbeddedFiles("h2-" + h2Version + ".jar", driverDir, null); - copyEmbeddedFiles("postgresql-" + pgVersion + ".jar", driverDir, null); + copyEmbeddedFiles(getH2PilotFilename(config), driverDir, null); + copyEmbeddedFiles(getPostgresqlPilotFilename(config), driverDir, null); } protected void copyEmbeddedFiles(String resourceName, Modified: trunk/echobase-services/src/main/resources/embedded/echobase.properties =================================================================== --- trunk/echobase-services/src/main/resources/embedded/echobase.properties 2012-04-06 14:11:29 UTC (rev 502) +++ trunk/echobase-services/src/main/resources/embedded/echobase.properties 2012-04-06 16:05:03 UTC (rev 503) @@ -22,15 +22,14 @@ # #L% ### +# Postgresql pilot version postgresqlVersion=${postgresqlVersion} + +# H2 pilot version h2Version=${h2Version} +# Where to find data data.directory=. +# where to find war war.directory=${data.directory} - -#hibernate.dialect=org.hibernate.dialect.H2Dialect -#hibernate.connection.username=sa -#hibernate.connection.password=sa -#hibernate.connection.driver_class=org.h2.Driver -#hibernate.connection.url=jdbc:h2:file:${data.directory}/db/echobase Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ConnectToDbInformations.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ConnectToDbInformations.java 2012-04-06 14:11:29 UTC (rev 502) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/ConnectToDbInformations.java 2012-04-06 16:05:03 UTC (rev 503) @@ -24,9 +24,12 @@ package fr.ifremer.echobase.ui.actions.user; import fr.ifremer.echobase.EchoBaseConfiguration; +import fr.ifremer.echobase.services.EmbeddedApplicationService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import org.apache.commons.lang.StringUtils; import org.nuiton.topia.TopiaContextFactory; +import java.io.File; import java.util.Properties; /** @@ -45,6 +48,10 @@ protected String jdbcPassword; + protected String jdbcDriver; + + protected File jdbcPilot; + protected boolean askPassword; public String getJdbcUrl() { @@ -59,6 +66,14 @@ return jdbcPassword; } + public String getJdbcDriver() { + return jdbcDriver; + } + + public File getJdbcPilot() { + return jdbcPilot; + } + public boolean isAskPassword() { return askPassword; } @@ -76,6 +91,24 @@ } jdbcUrl = properties.getProperty(TopiaContextFactory.CONFIG_URL); jdbcLogin = properties.getProperty(TopiaContextFactory.CONFIG_USER); + jdbcDriver = properties.getProperty(TopiaContextFactory.CONFIG_DRIVER); + + EmbeddedApplicationService service = + newService(EmbeddedApplicationService.class); + + String pilotName; + + if ("org.h2.Driver".equals(jdbcDriver)) { + pilotName = service.getH2PilotFilename(properties); + } else { + pilotName = service.getPostgresqlPilotFilename(properties); + } + + if (StringUtils.isNotEmpty(pilotName)) { + File driverDirectory = service.getPilotsDirectory( + configuration.getDataDirectory()); + jdbcPilot = new File(driverDirectory, pilotName); + } return SUCCESS; } } Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties =================================================================== --- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-04-06 14:11:29 UTC (rev 502) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-04-06 16:05:03 UTC (rev 503) @@ -10,7 +10,9 @@ echobase.action.usingFrench=French version used echobase.common.importError=Message d'erreur echobase.common.importFileName=Nom du fichier importé +echobase.common.jdbcDriver=Jdbc Driver name echobase.common.nbCreatedObjects=Nombre d'objets crées +echobase.common.jdbcPilotPath=Path to jdbc pilot echobase.common.resultLabel=Result label echobase.confirm.delete.query=Confirm to delete export query echobase.error.bad.password=Bad password @@ -47,6 +49,7 @@ echobase.info.user.update= echobase.information.mission.created= echobase.label.exportAsSeen=Export as seen on screen +echobase.legend.connectionToDb.libreOffice=Utilisation dans LibreOffice echobase.legend.dbeditor.show=Detail of '%s' echobase.legend.importData.result.resume=Résultat echobase.legend.libreOfficeQuery=Requète "libre office" Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties =================================================================== --- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-04-06 14:11:29 UTC (rev 502) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-04-06 16:05:03 UTC (rev 503) @@ -1,4 +1,4 @@ -echobase.action.applySqlQuery=Appliquer la requête +echobase.action.applySqlQuery=Appliquer la requète echobase.action.backToUserList=Retour à la liste des utilisateurs echobase.action.cancel=Annuler echobase.action.cloneSqlQuery=Cloner @@ -51,6 +51,7 @@ echobase.common.importNotes=Remarques sur l'import echobase.common.importResult=Résultat de l'import echobase.common.inProgress=en cours... +echobase.common.jdbcDriver=Nom du pilote jdbc echobase.common.jdbcLogin=Login de connexion echobase.common.jdbcPassword=Mot de passe echobase.common.jdbcUrl=Url de connexion @@ -82,8 +83,8 @@ echobase.error.export.sqlQuery.forbidden.drop.word=La requète contient le mot 'DROP', ce qui est interdit echobase.error.export.sqlQuery.forbidden.insert.word=La requète contient le mot 'INSERT', ce qui est interdit echobase.error.export.sqlQuery.forbidden.update.word=La requète contient le mot 'UPDATE', ce qui est interdit -echobase.error.export.sqlQuery.requiredstring=La requête de l'export est obligatoire -echobase.error.export.sqlQuery.wrongformat=La requêtes n'est pas valide +echobase.error.export.sqlQuery.requiredstring=La requète de l'export est obligatoire +echobase.error.export.sqlQuery.wrongformat=La requètes n'est pas valide echobase.error.import.acousticDensityUnit.required=acousticDensityUnit non renseigné echobase.error.import.acquisitionSoftwareVersionER60.required=acquisitionSoftwareVersionER60 non renseigné echobase.error.import.acquisitionSoftwareVersionME70.required=acquisitionSoftwareVersionME70 non renseigné @@ -152,14 +153,14 @@ echobase.error.required.email=L'email est obligatoire echobase.error.required.password=Le mot de passe est obligatoire echobase.error.warlocation.notFound=L'application n'a pas été trouvé à l'emplacement suivant %s -echobase.header.request.result=Résultat de la requête sql +echobase.header.request.result=Résultat de la requète sql echobase.header.user.gridTitle=Liste des utilisateurs echobase.info.dbeditor.propertyDiffsResult=Résultat d'import de données echobase.info.import.failed=L'import a échoué. echobase.info.import.succeded=L'import a réussi. echobase.info.new.sqlQuery.inprogress=Nouvelle requète en cours de création -echobase.info.no.sqlQuery.saved=Aucune requête d'export sql enregistrée -echobase.info.no.sqlQuery.selected=Aucune requête d'export sql sélectionnée +echobase.info.no.sqlQuery.saved=Aucune requète d'export sql enregistrée +echobase.info.no.sqlQuery.selected=Aucune requète d'export sql sélectionnée echobase.info.no.table.selected=Aucune table sélectionnée echobase.info.no.voyagee.found=Aucune campagne à exporter echobase.info.sqlQuery.not.modifiable=Vous ne pouvez pas modifier la requète sélectionnée @@ -197,6 +198,7 @@ echobase.label.user.login=Utilisateur \: %s echobase.label.voyageToSelect=Voyage à exporter echobase.legend.connectionToDb.detail=Détail de la connection à la base de données +echobase.legend.connectionToDb.libreOffice=Utilisation dans LibreOffice echobase.legend.dbeditor.edit=Edition de '%s' echobase.legend.dbeditor.show=Visualisation de '%s' echobase.legend.embeddedApplication.configuration=Configuration de l'application embarquée @@ -213,8 +215,9 @@ echobase.legend.importDb.configuration.files=Choix du fichier d'import de la base complête (fichier zip) echobase.legend.importFileResult=Résultat de l'import %s echobase.legend.libreOfficeQuery=Requète "libre office" -echobase.legend.sqlQuery.configuration=Configuration de la requête -echobase.legend.sqlQuery.result=Résultats de la requête +echobase.legend.sqlQuery.configuration=Configuration de la requète +echobase.legend.sqlQuery.result=Résultats de la requète +echobase.common.jdbcPilotPath=Chemin du pilote jdbc echobase.menu.connectToDbInformations=Informations de connection à la base de données echobase.menu.createEmbeddedApplication=Créer une application embarquée echobase.menu.editData=Modifier les données Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/connectToDbInformations.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/connectToDbInformations.jsp 2012-04-06 14:11:29 UTC (rev 502) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/connectToDbInformations.jsp 2012-04-06 16:05:03 UTC (rev 503) @@ -33,16 +33,18 @@ <s:label key="jdbcUrl" label='%{getText("echobase.common.jdbcUrl")}'/> <s:label key="jdbcLogin" label='%{getText("echobase.common.jdbcLogin")}'/> <s:label key="jdbcPassword" label='%{getText("echobase.common.jdbcPassword")} (*)'/> + <s:label key="jdbcDriver" label='%{getText("echobase.common.jdbcDriver")}'/> + <s:if test="jdbcPilot != null"> + <s:label key="jdbcPilot" label='%{getText("echobase.common.jdbcPilotPath")}'/> + </s:if> </fieldset> <br/> - <s:if test="askPassword"> <div> (*) <s:text name="echobase.message.askAdministratorPassword"/>. </div> </s:if> -<div> </div>