r834 - in trunk: . echobase-domain/src/main/java/fr/ifremer/echobase/entities echobase-domain/src/main/java/fr/ifremer/echobase/persistence echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb echobase-domain/src/main/java/fr/ifremer/echobase/services echobase-services/src/main/java/fr/ifremer/echobase/services/exportquery echobase-services/src/main/java/fr/ifremer/echobase/serv
Author: tchemit Date: 2013-08-05 12:46:02 +0200 (Mon, 05 Aug 2013) New Revision: 834 Url: http://forge.codelutin.com/projects/echobase/repository/revisions/834 Log: - use last topia API - improve some service code - use last postgresql dialect for hibernat configuration Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DriverType.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBasePersistenceHelper.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion2_2.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_2.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportquery/GenericSQLQuery.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/RemoveDataService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AbstractRemoveDataStrategy.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractConfigureImport.java trunk/pom.xml trunk/src/site/en/resources/echobase.properties trunk/src/site/en/rst/install.rst trunk/src/site/resources/echobase.properties trunk/src/site/rst/install.rst Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DriverType.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DriverType.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DriverType.java 2013-08-05 10:46:02 UTC (rev 834) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.EchoBaseConfiguration; import fr.ifremer.echobase.I18nAble; import org.hibernate.dialect.H2Dialect; -import org.hibernate.dialect.PostgreSQLDialect; +import org.hibernate.dialect.PostgreSQL82Dialect; import static org.nuiton.i18n.I18n.n_; @@ -48,7 +48,7 @@ } }, POSTGRESQL(org.postgresql.Driver.class, - PostgreSQLDialect.class, + PostgreSQL82Dialect.class, n_("echobase.common.driverType.postgres")) { @Override public String getPilotVersion(EchoBaseConfiguration config) { Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java 2013-08-05 10:46:02 UTC (rev 834) @@ -31,7 +31,7 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaContextFactory; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; +import org.nuiton.topia.TopiaTransaction; import org.nuiton.topia.framework.TopiaContextImplementor; import java.sql.Connection; @@ -50,13 +50,14 @@ private static final Log log = LogFactory.getLog(EchoBaseEntityHelper.class); public static TopiaContext newTransactionFromRootContext(TopiaContext otherTx) throws TopiaException { - TopiaContext tx = ((TopiaContextImplementor) otherTx).getRootContext().beginTransaction(); + TopiaContextImplementor rootContext = ((TopiaContextImplementor) otherTx).getRootContext(); + TopiaContext tx = rootContext.beginTransaction(); return tx; } public static void releaseRootContext(TopiaContext context) { - TopiaContextImplementor rootContext = ((TopiaContextImplementor) context).getRootContext(); + TopiaContext rootContext = ((TopiaContextImplementor) context).getRootContext(); if (log.isInfoEnabled()) { log.info("release database " + @@ -74,8 +75,8 @@ } public static void releaseContext(TopiaContext rootContext) throws TopiaException { - if (rootContext != null && !rootContext.isClosed()) { - rootContext.closeContext(); + if (rootContext != null && !((TopiaTransaction) rootContext).isClosed()) { + ((TopiaTransaction) rootContext).closeContext(); } } @@ -114,7 +115,7 @@ if (log.isTraceEnabled()) { log.trace("no transaction to close"); } - } else if (transaction.isClosed()) { + } else if (((TopiaTransaction) transaction).isClosed()) { if (log.isTraceEnabled()) { log.trace("transaction " + transaction + " is already closed"); } @@ -124,14 +125,14 @@ } - Transaction tx = ((TopiaContextImplementor) transaction).getHibernate().getTransaction(); + Transaction tx = transaction.getHibernateSession().getTransaction(); if (!tx.wasCommitted() && !tx.wasRolledBack()) { if (log.isDebugEnabled()) { log.debug("rollback transaction!"); } tx.rollback(); } - transaction.closeContext(); + ((TopiaTransaction) transaction).closeContext(); } } @@ -140,13 +141,12 @@ * * @param tx transaction * @return {@code true} if the schema is already created, {@code false} - * otherwise + * otherwise * @throws TopiaException if something was wrong while requesting database */ public static boolean isInternalSchemaCreated(TopiaContext tx) throws TopiaException { - boolean schemaFound = - ((TopiaContextImplementor) tx).isSchemaExist(EchoBaseUserImpl.class); + boolean schemaFound = tx.isTableExists(EchoBaseUserImpl.class); return schemaFound; } @@ -156,13 +156,12 @@ * * @param tx transaction * @return {@code true} if the schema is already created, {@code false} - * otherwise + * otherwise * @throws TopiaException if something was wrong while requesting database */ public static boolean isWorkingDbSchemaCreated(TopiaContext tx) throws TopiaException { - boolean schemaFound = - ((TopiaContextImplementor) tx).isSchemaExist(VoyageImpl.class); + boolean schemaFound = tx.isTableExists(VoyageImpl.class); return schemaFound; } Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBasePersistenceHelper.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBasePersistenceHelper.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBasePersistenceHelper.java 2013-08-05 10:46:02 UTC (rev 834) @@ -28,8 +28,6 @@ import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; -import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaPersistenceHelper; @@ -60,7 +58,7 @@ public final void flushTransaction(TopiaContext tx, String errorMessage) { try { - ((TopiaContextImplementor) tx).getHibernate().flush(); + tx.getHibernateSession().flush(); } catch (TopiaException e) { throw new EchoBaseTechnicalException(errorMessage, e); } Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java 2013-08-05 10:46:02 UTC (rev 834) @@ -34,6 +34,7 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaContextFactory; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.TopiaPersistenceContext; import org.nuiton.util.RecursiveProperties; import java.io.File; @@ -82,7 +83,7 @@ log.info("Will create schema for " + jdbcConfiguration.getUrl()); } - result.createSchema(); + ((TopiaPersistenceContext) result).createSchema(); } } catch (TopiaException e) { throw new EchoBaseTechnicalException("Could not create db schema", e); @@ -108,7 +109,7 @@ log.info("Will create schema for " + properties.get(TopiaContextFactory.CONFIG_URL)); } - result.createSchema(); + ((TopiaPersistenceContext) result).createSchema(); } } catch (TopiaException e) { throw new EchoBaseTechnicalException("Could not create db schema", e); @@ -203,4 +204,10 @@ properties.put(propertyName, o); properties.remove(propertyNameToRemove); } + + public static boolean canUpdatePostgis(TopiaContext tx) { + String dialect = tx.getHibernateConfiguration().getProperty(TopiaContextFactory.CONFIG_DIALECT); + + return DriverType.POSTGRESQL.getDialectClass().getName().equals(dialect); + } } Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion.java 2013-08-05 10:46:02 UTC (rev 834) @@ -24,8 +24,8 @@ */ import org.hibernate.dialect.Dialect; +import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaNotFoundException; -import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG; /** @@ -36,7 +36,7 @@ */ public abstract class MigrationCallBackForVersion extends TopiaMigrationCallbackByClassNG.MigrationCallBackForVersion { - protected Dialect getDialect(TopiaContextImplementor tx) throws TopiaNotFoundException { + protected Dialect getDialect(TopiaContext tx) throws TopiaNotFoundException { Dialect dialect = Dialect.getDialect(tx.getHibernateConfiguration().getProperties()); return dialect; Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion2_2.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion2_2.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion2_2.java 2013-08-05 10:46:02 UTC (rev 834) @@ -26,8 +26,8 @@ import fr.ifremer.echobase.entities.ExportQueries; import fr.ifremer.echobase.entities.ExportQuery; import fr.ifremer.echobase.entities.ExportQueryImpl; +import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.framework.TopiaSQLQuery; import org.nuiton.util.Version; @@ -53,7 +53,7 @@ "UPDATE exportquery SET name = '%s', topiaversion = topiaversion + 1 WHERE topiaid = '%s'"; @Override - protected void prepareMigrationScript(TopiaContextImplementor tx, + protected void prepareMigrationScript(TopiaContext tx, List<String> queries, boolean showSql, boolean showProgression) throws TopiaException { @@ -69,7 +69,7 @@ queries.add("ALTER TABLE WorkingDbConfiguration DROP COLUMN login"); } - protected void normalizeExportQueryNames(TopiaContextImplementor tx, List<String> queries) { + protected void normalizeExportQueryNames(TopiaContext tx, List<String> queries) { TopiaSQLQuery<ExportQuery> query = new TopiaSQLQuery<ExportQuery>() { @Override Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion.java 2013-08-05 10:46:02 UTC (rev 834) @@ -24,8 +24,8 @@ */ import org.hibernate.dialect.Dialect; +import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaNotFoundException; -import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG; /** @@ -36,7 +36,7 @@ */ public abstract class MigrationCallBackForVersion extends TopiaMigrationCallbackByClassNG.MigrationCallBackForVersion { - protected Dialect getDialect(TopiaContextImplementor tx) throws TopiaNotFoundException { + protected Dialect getDialect(TopiaContext tx) throws TopiaNotFoundException { Dialect dialect = Dialect.getDialect(tx.getHibernateConfiguration().getProperties()); return dialect; Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_2.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_2.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_2.java 2013-08-05 10:46:02 UTC (rev 834) @@ -23,11 +23,12 @@ * #L% */ +import fr.ifremer.echobase.persistence.EchobaseTopiaContexts; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContextFactory; +import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.TopiaSqlSupport; import org.nuiton.util.Version; import java.util.List; @@ -50,7 +51,7 @@ } @Override - protected void prepareMigrationScript(TopiaContextImplementor tx, + protected void prepareMigrationScript(TopiaContext tx, List<String> queries, boolean showSql, boolean showProgression) throws TopiaException { @@ -59,12 +60,20 @@ removeResultCategoryNotNullConstrainst(queries); // compute all spatial data (http://forge.codelutin.com/issues/3037) - String dialect = tx.getHibernateConfiguration().getProperty(TopiaContextFactory.CONFIG_DIALECT); + updatePostgis(tx); + } - if (!dialect.toLowerCase().contains("h2")) { + protected void removeResultCategoryNotNullConstrainst(List<String> queries) { + queries.add("ALTER TABLE Result ALTER COLUMN category DROP NOT NULL;"); + } + + protected void updatePostgis(TopiaContext tx) { + boolean updatePostgis = EchobaseTopiaContexts.canUpdatePostgis(tx); + + if (updatePostgis) { try { // compute all spatial data - tx.executeSQL("SELECT echobase_compute_all_spatial_data();"); + ((TopiaSqlSupport) tx).executeSQL("SELECT echobase_compute_all_spatial_data();"); } catch (TopiaException e) { if (log.isErrorEnabled()) { log.error("Could not update spatial datas", e); @@ -72,9 +81,4 @@ } } } - - protected void removeResultCategoryNotNullConstrainst(List<String> queries) { - queries.add("ALTER TABLE Result ALTER COLUMN category DROP NOT NULL;"); - } - } \ No newline at end of file Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2013-08-05 10:46:02 UTC (rev 834) @@ -29,10 +29,14 @@ import fr.ifremer.echobase.entities.EchoBaseInternalDAOHelper; import fr.ifremer.echobase.entities.EchobaseInternalEntity; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; +import fr.ifremer.echobase.persistence.EchobaseTopiaContexts; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.TopiaSqlSupport; +import org.nuiton.topia.TopiaTransaction; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; @@ -46,6 +50,10 @@ */ public class EchoBaseServiceSupport implements EchoBaseService { + /** Logger. */ + private static final Log log = + LogFactory.getLog(EchoBaseServiceSupport.class); + protected EchoBaseServiceContext serviceContext; @Override @@ -197,7 +205,7 @@ public final void commitTransaction(String errorMessage) { try { - getTransaction().commitTransaction(); + ((TopiaTransaction) getTransaction()).commitTransaction(); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(errorMessage, eee); } @@ -205,16 +213,15 @@ public final void commitInternalTransaction(String errorMessage) { try { - getInternalTransaction().commitTransaction(); + ((TopiaTransaction) getInternalTransaction()).commitTransaction(); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(errorMessage, eee); } } protected final void flushTransaction(String errorMessage) { - TopiaContextImplementor tx = (TopiaContextImplementor) getTransaction(); try { - tx.getHibernate().flush(); + getTransaction().getHibernateSession().flush(); } catch (TopiaException e) { throw new EchoBaseTechnicalException(errorMessage, e); } @@ -222,7 +229,7 @@ protected final void clearCache() { try { - getTransaction().clearCache(); + getTransaction().getHibernateSession().clear(); } catch (TopiaException e) { throw new EchoBaseTechnicalException("Could not clear hibernate cache", e); } @@ -238,4 +245,29 @@ return result; } + /** + * To update the {@code echobase_cell_spatial} table from the filled + * table {@code echobase_cell_sptaial_temp}. + * + * @since 2.2 + */ + public void updatePostgisTable() { + + if (EchobaseTopiaContexts.canUpdatePostgis(getTransaction())) { + + // try the update only for postgresql + try { + if (log.isInfoEnabled()) { + log.info("Will try to compute spatial data from temp table..."); + } + ((TopiaSqlSupport) getTransaction()).executeSQL("SELECT echobase_fill_cell_spatial_table();"); + commitTransaction("Could not compute spatial data"); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Could not compute spatial data", e); + } + } + } + } + } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportquery/GenericSQLQuery.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportquery/GenericSQLQuery.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportquery/GenericSQLQuery.java 2013-08-05 10:46:02 UTC (rev 834) @@ -27,7 +27,6 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.framework.TopiaSQLQuery; import org.nuiton.util.PagerBean; import org.nuiton.util.PagerBeanUtil; @@ -75,16 +74,16 @@ public List<Map<String, Object>> getResult(TopiaContext tx) throws TopiaException { List<Map<String, Object>> rows = - findMultipleResult((TopiaContextImplementor) tx); + findMultipleResult(tx); return rows; } public void testQuery(TopiaContext tx) throws TopiaException { - findSingleResult((TopiaContextImplementor) tx); + findSingleResult(tx); } public String[] getColumnNames(TopiaContext tx) throws TopiaException { - findSingleResult((TopiaContextImplementor) tx); + findSingleResult(tx); return columnNames; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java 2013-08-05 10:46:02 UTC (rev 834) @@ -62,13 +62,6 @@ */ protected ImportType importType; - /** - * Flag to compute spatial data at the end of the import. - * - * @since 2.2 - */ - protected boolean computeSpatialData; - /** Result stats for each file imported. (mainly kept for testing purpose). */ protected final List<EchoBaseCsvFileImportResult> importResults = Lists.newArrayList(); @@ -105,14 +98,6 @@ this.importType = importType; } - public boolean isComputeSpatialData() { - return computeSpatialData; - } - - public void setComputeSpatialData(boolean computeSpatialData) { - this.computeSpatialData = computeSpatialData; - } - public List<EchoBaseCsvFileImportResult> getImportResults() { return importResults; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2013-08-05 10:46:02 UTC (rev 834) @@ -118,21 +118,10 @@ commitTransaction("Could not execute import " + getImportLabel(configuration)); - if (configuration.isComputeSpatialData()) { - try { - if (log.isInfoEnabled()) { - log.info("Will try to compute spatial data..."); - } - getTransaction().executeSQL("SELECT echobase_fill_cell_spatial_table();"); - commitTransaction("Could not compute spatial data for import " + - getImportLabel(configuration)); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not compute spatial data", e); - } - } - } + updatePostgisTable(); + s0 = TIME_LOG.log(s0, "postgis update"); + TIME_LOG.log(s0, "importCommited"); return result; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbService.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbService.java 2013-08-05 10:46:02 UTC (rev 834) @@ -68,6 +68,12 @@ } catch (TopiaException e) { throw new ImportException("Could not import db", e); } + + if (ImportDbMode.REFERENTIAL != importDbMode) { + + // let's update postgis table + updatePostgisTable(); + } } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportService.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportService.java 2013-08-05 10:46:02 UTC (rev 834) @@ -30,21 +30,22 @@ import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.services.DbEditorService; import fr.ifremer.echobase.services.EchoBaseServiceSupport; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.csv.Import; +import org.nuiton.csv.ImportModel; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.csv.in.CsvImportResult; import org.nuiton.topia.persistence.csv.in.ImportModelFactory; import org.nuiton.topia.persistence.metadata.TableMeta; -import org.nuiton.csv.Import; -import org.nuiton.csv.ImportModel; import java.io.BufferedReader; import java.io.File; import java.io.IOException; /** - * To import datas from csv files into the db. + * To import datas from a csv file into the db. * * @author tchemit <chemit@codelutin.com> * @since 0.2 @@ -94,11 +95,15 @@ result.incrementsNumberUpdated(); } } + importer.close(); + } finally { - importer.close(); + IOUtils.closeQuietly(importer); } + bf.close(); + commitTransaction("Could not commit transaction"); } catch (EchoBaseTechnicalException eee) { throw eee; @@ -106,7 +111,7 @@ log.error("Failed to read import file " + importFile.getName(), eee); throw new EchoBaseTechnicalException(eee); } finally { - bf.close(); + IOUtils.closeQuietly(bf); } return result; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java 2013-08-05 10:46:02 UTC (rev 834) @@ -149,10 +149,13 @@ user, file); + zipFile.close(); + commitTransaction("Could not commit db import from file " + file); } finally { - zipFile.close(); + + IOUtils.closeQuietly(zipFile); } } @@ -223,9 +226,9 @@ flushTransaction("Could not flush " + entryDef + " to db."); TIME_LOG.log(s0, "importFile::flushTransaction"); + reader.close(); } finally { - reader.close(); - + IOUtils.closeQuietly(reader); if (commitAfterEachFile) { commitTransaction( "Could not commit db import from file " + Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java 2013-08-05 10:46:02 UTC (rev 834) @@ -25,9 +25,10 @@ import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.persistence.EchoBasePersistenceHelper; +import org.nuiton.csv.Import; +import org.nuiton.csv.ImportToMap; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaEntityEnum; @@ -38,8 +39,6 @@ import org.nuiton.topia.persistence.csv.in.TopiaCsvImports; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.TableMeta; -import org.nuiton.csv.Import; -import org.nuiton.csv.ImportToMap; import java.util.Map; @@ -127,7 +126,7 @@ CsvImportResult<T> csvResult, int nbRowBuffer) throws TopiaException { - TopiaContextImplementor context = dao.getContext(); + TopiaContext context = dao.getTopiaContext(); CsvProgressModel progressModel = csvResult == null ? null : csvResult.getProgressModel(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/RemoveDataService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/RemoveDataService.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/RemoveDataService.java 2013-08-05 10:46:02 UTC (rev 834) @@ -53,7 +53,6 @@ import org.nuiton.decorator.Decorator; import org.nuiton.topia.TopiaException; import org.nuiton.topia.TopiaNotFoundException; -import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaIdFactory; @@ -310,7 +309,7 @@ protected <E extends TopiaEntity> TopiaDAO<E> getDAOFromId(String id) { try { - TopiaIdFactory topiaIdFactory = ((TopiaContextImplementor) getTransaction()).getTopiaIdFactory(); + TopiaIdFactory topiaIdFactory = getTransaction().getTopiaIdFactory(); Class<E> className = topiaIdFactory.getClassName(id); return getDAO(className); } catch (TopiaNotFoundException e) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AbstractRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AbstractRemoveDataStrategy.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AbstractRemoveDataStrategy.java 2013-08-05 10:46:02 UTC (rev 834) @@ -49,7 +49,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.framework.TopiaSQLQuery; import java.sql.Connection; @@ -228,8 +227,7 @@ } }; - List<String> cellIds = query.findMultipleResult( - (TopiaContextImplementor) getTransaction()); + List<String> cellIds = query.findMultipleResult(getTransaction()); // remove all result of cells @@ -273,8 +271,7 @@ } }; try { - Long result = query.findSingleResult( - (TopiaContextImplementor) getTransaction()); + Long result = query.findSingleResult(getTransaction()); return result; } catch (TopiaException e) { throw new EchoBaseTechnicalException(e); @@ -298,8 +295,7 @@ } }; - List<String> cellIds = query.findMultipleResult( - (TopiaContextImplementor) getTransaction()); + List<String> cellIds = query.findMultipleResult(getTransaction()); for (String cellId : cellIds) { Cell cell = cellDAO.findByTopiaId(cellId); @@ -334,8 +330,7 @@ } }; try { - Long result = query.findSingleResult( - (TopiaContextImplementor) getTransaction()); + Long result = query.findSingleResult(getTransaction()); return result; } catch (TopiaException e) { throw new EchoBaseTechnicalException(e); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java 2013-08-05 10:46:02 UTC (rev 834) @@ -93,7 +93,7 @@ // } // // try { -// Transaction tx = ((TopiaContextImplementor) transaction).getHibernate().getTransaction(); +// Transaction tx = transaction.getHibernateSession().getTransaction(); // if (!tx.wasCommitted() && !tx.wasRolledBack()) { // if (log.isDebugEnabled()) { // log.debug("rollback transaction!"); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractConfigureImport.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractConfigureImport.java 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractConfigureImport.java 2013-08-05 10:46:02 UTC (rev 834) @@ -23,7 +23,6 @@ */ package fr.ifremer.echobase.ui.actions.importData; -import fr.ifremer.echobase.entities.DriverType; import fr.ifremer.echobase.io.EchoBaseIOUtil; import fr.ifremer.echobase.io.InputFile; import fr.ifremer.echobase.services.importdata.AbstractImportConfiguration; @@ -71,8 +70,6 @@ EchoBaseIOUtil.copyFile(inputFile, dataDirectory); } } - // can compute spatial data only for postgresql db - model.setComputeSpatialData(DriverType.POSTGRESQL == getEchoBaseSession().getWorkingDbConfiguration().getDriverType()); } Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/pom.xml 2013-08-05 10:46:02 UTC (rev 834) @@ -132,7 +132,7 @@ <!-- libraries version --> <eugenePluginVersion>2.7</eugenePluginVersion> - <topiaVersion>3.0-alpha-2-SNAPSHOT</topiaVersion> + <topiaVersion>3.0-SNAPSHOT</topiaVersion> <nuitonUtilsVersion>2.7</nuitonUtilsVersion> <nuitonI18nVersion>2.5.1</nuitonI18nVersion> <nuitonWebVersion>1.14</nuitonWebVersion> Modified: trunk/src/site/en/resources/echobase.properties =================================================================== --- trunk/src/site/en/resources/echobase.properties 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/src/site/en/resources/echobase.properties 2013-08-05 10:46:02 UTC (rev 834) @@ -21,7 +21,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ### -hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +hibernate.dialect=org.hibernate.dialect.PostgreSQL82Dialect hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.url=jdbc:postgresql://localhost/echobase hibernate.connection.username=echobase Modified: trunk/src/site/en/rst/install.rst =================================================================== --- trunk/src/site/en/rst/install.rst 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/src/site/en/rst/install.rst 2013-08-05 10:46:02 UTC (rev 834) @@ -117,7 +117,7 @@ :: - hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect + hibernate.dialect=org.hibernate.dialect.PostgreSQL82Dialect hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.url=jdbc:postgresql://monNomDeMachine/echobase hibernate.connection.username=echobase Modified: trunk/src/site/resources/echobase.properties =================================================================== --- trunk/src/site/resources/echobase.properties 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/src/site/resources/echobase.properties 2013-08-05 10:46:02 UTC (rev 834) @@ -21,7 +21,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ### -hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +hibernate.dialect=org.hibernate.dialect.PostgreSQL82Dialect hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.url=jdbc:postgresql://localhost/echobase hibernate.connection.username=echobase Modified: trunk/src/site/rst/install.rst =================================================================== --- trunk/src/site/rst/install.rst 2013-08-03 20:00:59 UTC (rev 833) +++ trunk/src/site/rst/install.rst 2013-08-05 10:46:02 UTC (rev 834) @@ -113,7 +113,7 @@ :: - hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect + hibernate.dialect=org.hibernate.dialect.PostgreSQL82Dialect hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.url=jdbc:postgresql://monNomDeMachine/echobase hibernate.connection.username=echobase
participants (1)
-
tchemit@users.forge.codelutin.com