Author: tchemit Date: 2012-08-22 12:54:29 +0200 (Wed, 22 Aug 2012) New Revision: 561 Url: http://forge.codelutin.com/repositories/revision/echobase/561 Log: refs #1407: Extraction du module d'import-export csv vers ToPIA Added: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseDbMeta.java trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseDbMetaTest.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultImportStrategy.java Removed: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseMetadatas.java trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseMetadatasTest.java Modified: trunk/echobase-entities/src/test/java/fr/ifremer/echobase/EchoBaseDecoratorProviderTest.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportRow.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/BiometrySampleImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EchotypeImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/GearMetadataValueImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthAgeKeyImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationMetadataValueImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellAssociationImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/SubSampleImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TotalSampleImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransectImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransitImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/VoyageImportModel.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java Added: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseDbMeta.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseDbMeta.java (rev 0) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseDbMeta.java 2012-08-22 10:54:29 UTC (rev 561) @@ -0,0 +1,199 @@ +package fr.ifremer.echobase.entities; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.DbMeta; +import org.nuiton.topia.persistence.metadata.TableMeta; + +import java.util.Arrays; +import java.util.List; + +/** + * TODO + * + * @author tchemit <chemit@codelutin.com> + * @since TODO + */ +public class EchoBaseDbMeta extends DbMeta<EchoBaseEntityEnum> { + + public static EchoBaseDbMeta newDbMeta() { + return new EchoBaseDbMeta(new EchoBasePersistenceHelper() + ); + } + + private static final List<EchoBaseEntityEnum> REFERENCE_TYPES = ImmutableList.copyOf(Arrays.asList( + + // with no dep + EchoBaseEntityEnum.SexCategory, + EchoBaseEntityEnum.AgeCategory, + EchoBaseEntityEnum.SizeCategory, + EchoBaseEntityEnum.Species, + EchoBaseEntityEnum.Calibration, + EchoBaseEntityEnum.VesselType, + EchoBaseEntityEnum.Mission, + EchoBaseEntityEnum.DepthStratum, + EchoBaseEntityEnum.EchotypeCategory, + EchoBaseEntityEnum.AreaOfOperation, + EchoBaseEntityEnum.ReferenceDatumType, + EchoBaseEntityEnum.DataType, + EchoBaseEntityEnum.DataQuality, + EchoBaseEntityEnum.CellMethod, + EchoBaseEntityEnum.CellType, + EchoBaseEntityEnum.OperationEvent, + EchoBaseEntityEnum.SampleDataType, + EchoBaseEntityEnum.SampleType, + EchoBaseEntityEnum.GearCharacteristic, + EchoBaseEntityEnum.CategoryMeaning, + EchoBaseEntityEnum.CategoryType, + EchoBaseEntityEnum.MeasureType, + EchoBaseEntityEnum.MeasurementMetadata, + EchoBaseEntityEnum.ReferencingMethod, + + // with deps + EchoBaseEntityEnum.Strata, + EchoBaseEntityEnum.AcousticInstrument, + EchoBaseEntityEnum.Vessel, + EchoBaseEntityEnum.ReferenceDatum, + EchoBaseEntityEnum.OperationMetadata, + EchoBaseEntityEnum.GearMetadata, + EchoBaseEntityEnum.GearCharacteristicValue, + EchoBaseEntityEnum.Gear, + + EchoBaseEntityEnum.SpeciesCategory, + EchoBaseEntityEnum.TSParameters, + EchoBaseEntityEnum.DataMetadata, + EchoBaseEntityEnum.CategoryRef, + EchoBaseEntityEnum.Impacte, + EchoBaseEntityEnum.DataProtocol)); + + private static final List<EchoBaseEntityEnum> DATA_TYPES = ImmutableList.copyOf(Arrays.asList( + EchoBaseEntityEnum.SampleData, + EchoBaseEntityEnum.Sample, + + EchoBaseEntityEnum.OperationMetadataValue, + EchoBaseEntityEnum.GearMetadataValue, + EchoBaseEntityEnum.Operation, + + EchoBaseEntityEnum.Data, + + EchoBaseEntityEnum.Echotype, + EchoBaseEntityEnum.Category, + EchoBaseEntityEnum.Result, + + EchoBaseEntityEnum.Cell, + EchoBaseEntityEnum.DataProcessing, + EchoBaseEntityEnum.DataAcquisition, + EchoBaseEntityEnum.Transect, + EchoBaseEntityEnum.Transit, + + EchoBaseEntityEnum.LengthAgeKey, + EchoBaseEntityEnum.LengthWeightKey, + + EchoBaseEntityEnum.Voyage)); + + + private final List<TableMeta<EchoBaseEntityEnum>> referenceTables; + + private final List<AssociationMeta<EchoBaseEntityEnum>> referenceAssociations; + + private final List<TableMeta<EchoBaseEntityEnum>> dataTables; + + private final List<AssociationMeta<EchoBaseEntityEnum>> dataAssociations; + + EchoBaseDbMeta(EchoBasePersistenceHelper persistenceHelper) { + super(persistenceHelper, + EchoBaseEntityEnum.values(), + EchoBaseEntityEnum.EchoBaseUser, + EchoBaseEntityEnum.EntityModificationLog, + EchoBaseEntityEnum.ExportQuery); + + + { + // reference tables + List<TableMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + addTables(result, REFERENCE_TYPES); + referenceTables = ImmutableList.copyOf(result); + } + + { + // reference associations + List<AssociationMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + addAssociations(result, REFERENCE_TYPES); + referenceAssociations = ImmutableList.copyOf(result); + } + + { + // data tables + + List<TableMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + addTables(result, DATA_TYPES); + dataTables = ImmutableList.copyOf(result); + } + + { + // data associations + List<AssociationMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + addAssociations(result, DATA_TYPES); + dataAssociations = ImmutableList.copyOf(result); + } + + } + + public int getEntriesSize() { + return getAllTables().size() + getAllAssociations().size(); + } + + public List<TableMeta<EchoBaseEntityEnum>> getAllTables() { + + List<TableMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + + result.addAll(referenceTables); + result.addAll(dataTables); + return ImmutableList.copyOf(result); + } + + public List<AssociationMeta<EchoBaseEntityEnum>> getAllAssociations() { + List<AssociationMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + result.addAll(referenceAssociations); + result.addAll(dataAssociations); + return ImmutableList.copyOf(result); + } + + public int getReferenceEntriesSize() { + return getReferenceTables().size() + getReferenceAssociations().size(); + } + + public List<TableMeta<EchoBaseEntityEnum>> getReferenceTables() { + return referenceTables; + } + + public List<AssociationMeta<EchoBaseEntityEnum>> getReferenceAssociations() { + return referenceAssociations; + } + + public List<TableMeta<EchoBaseEntityEnum>> getDataTables() { + return dataTables; + } + + public List<AssociationMeta<EchoBaseEntityEnum>> getDataAssociations() { + return dataAssociations; + } + + /** + * @return the entity types of data in correct order for replication + * purpose. + */ + public List<EchoBaseEntityEnum> getDataTypes() { + return DATA_TYPES; + } + + /** + * @return the entity types of reference in correct order for copy + * purpose (says import / export of all a database. + */ + public List<EchoBaseEntityEnum> getReferenceTypes() { + return REFERENCE_TYPES; + + } +} Property changes on: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseDbMeta.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseMetadatas.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseMetadatas.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseMetadatas.java 2012-08-22 10:54:29 UTC (rev 561) @@ -1,187 +0,0 @@ -package fr.ifremer.echobase.entities; -/* - * #%L - * EchoBase :: Entities - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2012 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import com.google.common.collect.Lists; -import com.google.common.collect.Multimap; -import org.nuiton.topia.persistence.metadata.DbMeta; -import org.nuiton.topia.persistence.metadata.MetaFilenameAware; -import org.nuiton.topia.persistence.metadata.Metadatas; - -import java.util.List; - -/** - * Metas useful method. - * - * @author tchemit <chemit@codelutin.com> - * @since 1.1 - */ -public class EchoBaseMetadatas { - - protected EchoBaseMetadatas() { - // avoid instance - } - - /** All types that we do not want to edit. */ - protected static final EchoBaseEntityEnum[] nonEditableTypes = { - EchoBaseEntityEnum.EchoBaseUser, - EchoBaseEntityEnum.EntityModificationLog, - EchoBaseEntityEnum.ExportQuery - }; - - public static DbMeta<EchoBaseEntityEnum> newDbMeta() { - return DbMeta.newDbMeta( - new EchoBasePersistenceHelper(), - EchoBaseEntityEnum.values(), - nonEditableTypes - ); - } - - public static MetaFilenameAware<EchoBaseEntityEnum>[] getEntries(DbMeta<EchoBaseEntityEnum> dbMeta) { - - List<MetaFilenameAware<EchoBaseEntityEnum>> entities = Lists.newArrayList(); - List<MetaFilenameAware<EchoBaseEntityEnum>> associations = Lists.newArrayList(); - - Metadatas.addEntries(dbMeta, entities, associations, getReferenceTypes()); - Metadatas.addEntries(dbMeta, entities, associations, getDataTypes()); - entities.addAll(associations); - return entities.toArray(new MetaFilenameAware[entities.size()]); - } - - public static MetaFilenameAware<EchoBaseEntityEnum>[] getReferenceEntries(DbMeta<EchoBaseEntityEnum> dbMeta) { - - List<MetaFilenameAware<EchoBaseEntityEnum>> entities = Lists.newArrayList(); - List<MetaFilenameAware<EchoBaseEntityEnum>> associations = Lists.newArrayList(); - - Metadatas.addEntries(dbMeta, entities, associations, getReferenceTypes()); - - entities.addAll(associations); - return entities.toArray(new MetaFilenameAware[entities.size()]); - } - - public static MetaFilenameAware<EchoBaseEntityEnum>[] getDataEntries(DbMeta<EchoBaseEntityEnum> dbMeta) { - - List<MetaFilenameAware<EchoBaseEntityEnum>> entities = Lists.newArrayList(); - - Metadatas.addEntries(dbMeta, entities, null, getDataTypes()); - return entities.toArray(new MetaFilenameAware[entities.size()]); - } - - public static Multimap<EchoBaseEntityEnum, MetaFilenameAware<EchoBaseEntityEnum>> getDataAssociationsEntries(DbMeta<EchoBaseEntityEnum> dbMeta) { - - List<MetaFilenameAware<EchoBaseEntityEnum>> associations = Lists.newArrayList(); - - Metadatas.addEntries(dbMeta, null, associations, getDataTypes()); - - Multimap<EchoBaseEntityEnum, MetaFilenameAware<EchoBaseEntityEnum>> associationsBySource = Metadatas.split(associations); - return associationsBySource; - } - - /** - * @return the entity types of data in correct order for replication - * purpose. - */ - public static EchoBaseEntityEnum[] getDataTypes() { - - List<EchoBaseEntityEnum> result = Lists.newLinkedList(); - - result.add(EchoBaseEntityEnum.SampleData); - result.add(EchoBaseEntityEnum.Sample); - - result.add(EchoBaseEntityEnum.OperationMetadataValue); - result.add(EchoBaseEntityEnum.GearMetadataValue); - result.add(EchoBaseEntityEnum.Operation); - - result.add(EchoBaseEntityEnum.Data); - - result.add(EchoBaseEntityEnum.Echotype); - result.add(EchoBaseEntityEnum.Category); - result.add(EchoBaseEntityEnum.Result); - - result.add(EchoBaseEntityEnum.Cell); - result.add(EchoBaseEntityEnum.DataProcessing); - result.add(EchoBaseEntityEnum.DataAcquisition); - result.add(EchoBaseEntityEnum.Transect); - result.add(EchoBaseEntityEnum.Transit); - - result.add(EchoBaseEntityEnum.LengthAgeKey); - result.add(EchoBaseEntityEnum.LengthWeightKey); - - result.add(EchoBaseEntityEnum.Voyage); - - return result.toArray(new EchoBaseEntityEnum[result.size()]); - } - - /** - * @return the entity types of reference in correct order for copy - * purpose (says import / export of all a database. - */ - public static EchoBaseEntityEnum[] getReferenceTypes() { - List<EchoBaseEntityEnum> result = Lists.newLinkedList(); - - // with no dep - result.add(EchoBaseEntityEnum.SexCategory); - result.add(EchoBaseEntityEnum.AgeCategory); - result.add(EchoBaseEntityEnum.SizeCategory); - result.add(EchoBaseEntityEnum.Species); - result.add(EchoBaseEntityEnum.Calibration); - result.add(EchoBaseEntityEnum.VesselType); - result.add(EchoBaseEntityEnum.Mission); - result.add(EchoBaseEntityEnum.DepthStratum); - result.add(EchoBaseEntityEnum.EchotypeCategory); - result.add(EchoBaseEntityEnum.AreaOfOperation); - result.add(EchoBaseEntityEnum.ReferenceDatumType); - result.add(EchoBaseEntityEnum.DataType); - result.add(EchoBaseEntityEnum.DataQuality); - result.add(EchoBaseEntityEnum.CellMethod); - result.add(EchoBaseEntityEnum.CellType); - result.add(EchoBaseEntityEnum.OperationEvent); - result.add(EchoBaseEntityEnum.SampleDataType); - result.add(EchoBaseEntityEnum.SampleType); - result.add(EchoBaseEntityEnum.GearCharacteristic); - result.add(EchoBaseEntityEnum.CategoryMeaning); - result.add(EchoBaseEntityEnum.CategoryType); - result.add(EchoBaseEntityEnum.MeasureType); - result.add(EchoBaseEntityEnum.MeasurementMetadata); - result.add(EchoBaseEntityEnum.ReferencingMethod); - - // with deps - result.add(EchoBaseEntityEnum.Strata); - result.add(EchoBaseEntityEnum.AcousticInstrument); - result.add(EchoBaseEntityEnum.Vessel); - result.add(EchoBaseEntityEnum.ReferenceDatum); - result.add(EchoBaseEntityEnum.OperationMetadata); - result.add(EchoBaseEntityEnum.GearMetadata); - result.add(EchoBaseEntityEnum.GearCharacteristicValue); - result.add(EchoBaseEntityEnum.Gear); - - result.add(EchoBaseEntityEnum.SpeciesCategory); - result.add(EchoBaseEntityEnum.TSParameters); - result.add(EchoBaseEntityEnum.DataMetadata); - result.add(EchoBaseEntityEnum.CategoryRef); - result.add(EchoBaseEntityEnum.Impacte); - result.add(EchoBaseEntityEnum.DataProtocol); - return result.toArray(new EchoBaseEntityEnum[result.size()]); - } - -} Modified: trunk/echobase-entities/src/test/java/fr/ifremer/echobase/EchoBaseDecoratorProviderTest.java =================================================================== --- trunk/echobase-entities/src/test/java/fr/ifremer/echobase/EchoBaseDecoratorProviderTest.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-entities/src/test/java/fr/ifremer/echobase/EchoBaseDecoratorProviderTest.java 2012-08-22 10:54:29 UTC (rev 561) @@ -24,8 +24,8 @@ package fr.ifremer.echobase; import com.google.common.collect.Lists; +import fr.ifremer.echobase.entities.EchoBaseDbMetaTest; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.EchoBaseMetadatasTest; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Mission; import junit.framework.Assert; @@ -49,7 +49,7 @@ EchoBaseDecoratorProvider provider = new EchoBaseDecoratorProvider(); provider.loadDecorators(locale); List<EchoBaseEntityEnum> expectedTypes = - Lists.newArrayList(EchoBaseMetadatasTest.getContractsOf( + Lists.newArrayList(EchoBaseDbMetaTest.getContractsOf( Mission.class.getPackage())); for (EchoBaseEntityEnum type : expectedTypes) { @@ -65,7 +65,7 @@ EchoBaseDecoratorProvider provider = new EchoBaseDecoratorProvider(); provider.loadDecorators(locale); List<EchoBaseEntityEnum> expectedTypes = - Lists.newArrayList(EchoBaseMetadatasTest.getContractsOf( + Lists.newArrayList(EchoBaseDbMetaTest.getContractsOf( Voyage.class.getPackage())); for (EchoBaseEntityEnum type : expectedTypes) { Copied: trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseDbMetaTest.java (from rev 560, trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseMetadatasTest.java) =================================================================== --- trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseDbMetaTest.java (rev 0) +++ trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseDbMetaTest.java 2012-08-22 10:54:29 UTC (rev 561) @@ -0,0 +1,107 @@ +/* + * #%L + * EchoBase :: Entities + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.echobase.entities; + +import com.google.common.collect.Lists; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.Mission; +import junit.framework.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.util.ArrayList; +import java.util.List; + +/** + * To test the class {@link EchoBaseDbMeta}. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.2 + */ +public class EchoBaseDbMetaTest { + + + protected EchoBaseDbMeta dbMetas; + + @Before + public void setUp() throws Exception { + dbMetas = EchoBaseDbMeta.newDbMeta(); + } + + + @Test + public void getReferenceTypes() { + + List<EchoBaseEntityEnum> types = + dbMetas.getReferenceTypes(); + + List<EchoBaseEntityEnum> expectedTypes = + Lists.newArrayList(getContractsOf(Mission.class.getPackage())); + + Assert.assertNotNull(types); + + for (EchoBaseEntityEnum type : expectedTypes) { + Assert.assertTrue("Missing type : " + type, types.contains(type)); + } + Assert.assertEquals(expectedTypes.size(), types.size()); + } + + @Test + public void getDataTypes() { + + List<EchoBaseEntityEnum> types = + dbMetas.getDataTypes(); + + List<EchoBaseEntityEnum> expectedTypes = + Lists.newArrayList(getContractsOf(Voyage.class.getPackage())); + + Assert.assertNotNull(types); + + for (EchoBaseEntityEnum type : expectedTypes) { + Assert.assertTrue("Missing type : " + type, types.contains(type)); + } + Assert.assertEquals(expectedTypes.size(), types.size()); + } + + /** + * Used to get all contract of a package + * + * @param entitiesPackage package contening desired entities + * @return contracts contained in entitiesPackage + */ + public static EchoBaseEntityEnum[] getContractsOf(Package entitiesPackage) { + EchoBaseEntityEnum[] echoBaseEntityEnums = EchoBaseEntityEnum.values(); + List<EchoBaseEntityEnum> refClasses = new ArrayList<EchoBaseEntityEnum>(); + for (EchoBaseEntityEnum echoBaseEntityEnum : echoBaseEntityEnums) { + + // Get all entities in package fr.ifremer.echobase.entities.references + Class<? extends TopiaEntity> contract = echoBaseEntityEnum.getContract(); + if (entitiesPackage.equals(contract.getPackage())) { + refClasses.add(echoBaseEntityEnum); + } + } + return refClasses.toArray(new EchoBaseEntityEnum[refClasses.size()]); + } +} Property changes on: trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseDbMetaTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Deleted: trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseMetadatasTest.java =================================================================== --- trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseMetadatasTest.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-entities/src/test/java/fr/ifremer/echobase/entities/EchoBaseMetadatasTest.java 2012-08-22 10:54:29 UTC (rev 561) @@ -1,98 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.echobase.entities; - -import com.google.common.collect.Lists; -import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.references.Mission; -import junit.framework.Assert; -import org.junit.Test; -import org.nuiton.topia.persistence.TopiaEntity; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * To test the class {@link EchoBaseMetadatas}. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.2 - */ -public class EchoBaseMetadatasTest { - - @Test - public void getReferenceTypes() { - - List<EchoBaseEntityEnum> types = - Arrays.asList(EchoBaseMetadatas.getReferenceTypes()); - - List<EchoBaseEntityEnum> expectedTypes = - Lists.newArrayList(getContractsOf(Mission.class.getPackage())); - - Assert.assertNotNull(types); - - for (EchoBaseEntityEnum type : expectedTypes) { - Assert.assertTrue("Missing type : " + type, types.contains(type)); - } - Assert.assertEquals(expectedTypes.size(), types.size()); - } - - @Test - public void getDataTypes() { - - List<EchoBaseEntityEnum> types = - Arrays.asList(EchoBaseMetadatas.getDataTypes()); - - List<EchoBaseEntityEnum> expectedTypes = - Lists.newArrayList(getContractsOf(Voyage.class.getPackage())); - - Assert.assertNotNull(types); - - for (EchoBaseEntityEnum type : expectedTypes) { - Assert.assertTrue("Missing type : " + type, types.contains(type)); - } - Assert.assertEquals(expectedTypes.size(), types.size()); - } - - /** - * Used to get all contract of a package - * - * @param entitiesPackage package contening desired entities - * @return contracts contained in entitiesPackage - */ - public static EchoBaseEntityEnum[] getContractsOf(Package entitiesPackage) { - EchoBaseEntityEnum[] echoBaseEntityEnums = EchoBaseEntityEnum.values(); - List<EchoBaseEntityEnum> refClasses = new ArrayList<EchoBaseEntityEnum>(); - for (EchoBaseEntityEnum echoBaseEntityEnum : echoBaseEntityEnums) { - - // Get all entities in package fr.ifremer.echobase.entities.references - Class<? extends TopiaEntity> contract = echoBaseEntityEnum.getContract(); - if (entitiesPackage.equals(contract.getPackage())) { - refClasses.add(echoBaseEntityEnum); - } - } - return refClasses.toArray(new EchoBaseEntityEnum[refClasses.size()]); - } -} Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java 2012-08-22 10:54:29 UTC (rev 561) @@ -25,9 +25,8 @@ import com.google.common.base.Preconditions; import fr.ifremer.echobase.EchoBaseConfiguration; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.persistence.metadata.DbMeta; import java.util.Locale; @@ -47,7 +46,7 @@ protected Locale locale; - protected DbMeta<EchoBaseEntityEnum> dbMeta; + protected EchoBaseDbMeta dbMeta; public static EchoBaseServiceContext newContext( EchoBaseServiceContext serviceContext, @@ -64,7 +63,7 @@ Locale locale, TopiaContext transaction, EchoBaseConfiguration configuration, - DbMeta dbMeta, + EchoBaseDbMeta dbMeta, EchoBaseServiceFactory serviceFactory) { return new DefaultEchoBaseServiceContext(locale, transaction, @@ -76,7 +75,7 @@ protected DefaultEchoBaseServiceContext(Locale locale, TopiaContext transaction, EchoBaseConfiguration configuration, - DbMeta dbMeta, + EchoBaseDbMeta dbMeta, EchoBaseServiceFactory serviceFactory) { this.locale = locale; this.transaction = transaction; @@ -112,7 +111,7 @@ } @Override - public DbMeta<EchoBaseEntityEnum> getDbMeta() { + public EchoBaseDbMeta getDbMeta() { return dbMeta; } Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultImportStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultImportStrategy.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultImportStrategy.java 2012-08-22 10:54:29 UTC (rev 561) @@ -0,0 +1,93 @@ +package fr.ifremer.echobase.services; + +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaEntityEnum; +import org.nuiton.topia.persistence.TopiaPersistenceHelper; +import org.nuiton.topia.persistence.csv.in.CsvImportResult; +import org.nuiton.topia.persistence.csv.in.ImportModelFactory; +import org.nuiton.topia.persistence.csv.in.ImportStrategy; +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.util.csv.Import; +import org.nuiton.util.csv.ImportToMap; + +import java.io.Reader; +import java.util.Map; + +/** + * TODO + * + * @author tchemit <chemit@codelutin.com> + * @since 1.1 + */ +public class DefaultImportStrategy implements ImportStrategy<EchoBaseEntityEnum> { + + private final TopiaContext tx; + + private final TopiaPersistenceHelper<EchoBaseEntityEnum> persistenceHelper; + + private final int nbRowBuffer; + + private final ImportModelFactory<EchoBaseEntityEnum> modelFactory; + + public DefaultImportStrategy(ImportModelFactory<EchoBaseEntityEnum> modelFactory, + TopiaContext tx, + TopiaPersistenceHelper<EchoBaseEntityEnum> persistenceHelper, + int nbRowBuffer) { + this.tx = tx; + this.persistenceHelper = persistenceHelper; + this.nbRowBuffer = nbRowBuffer; + this.modelFactory = modelFactory; + } + + public ImportModelFactory<EchoBaseEntityEnum> getModelFactory() { + return modelFactory; + } + + @Override + public <E extends TopiaEntity> void importTableFile(Import<E> importer, + TableMeta<EchoBaseEntityEnum> meta, + Reader reader, + CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException { + TopiaDAO<E> dao = (TopiaDAO<E>) persistenceHelper.getDAO(tx, meta.getEntityType()); + + for (TopiaEntity entity : importer) { + + Map<String, Object> properties = meta.prepareCreate( + entity, entity.getTopiaId()); + E entityToSave = dao.create(properties); + + meta.copy(entity, entityToSave); + + csvResult.incrementsNumberUpdated(); + } + } + + @Override + public <T extends TopiaEntityEnum> void importAssociationFile(AssociationMeta<T> meta, + ImportToMap importer, + CsvImportResult<T> csvResult) throws TopiaException { + TopiaCsvImports.importAssociationFile(tx, + meta, + importer, + csvResult, + nbRowBuffer); + } + + @Override + public void importNMAssociationFile(AssociationMeta<EchoBaseEntityEnum> meta, + ImportToMap importer, + CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException { + + TopiaCsvImports.importNMAssociationFile(tx, + meta, + importer, + csvResult, + nbRowBuffer); + } +} Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultImportStrategy.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2012-08-22 10:54:29 UTC (rev 561) @@ -25,9 +25,8 @@ package fr.ifremer.echobase.services; import fr.ifremer.echobase.EchoBaseConfiguration; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.persistence.metadata.DbMeta; import java.util.Locale; @@ -49,7 +48,7 @@ EchoBaseConfiguration getConfiguration(); - DbMeta<EchoBaseEntityEnum> getDbMeta(); + EchoBaseDbMeta getDbMeta(); EchoBaseServiceFactory getServiceFactory(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2012-08-22 10:54:29 UTC (rev 561) @@ -28,6 +28,7 @@ import fr.ifremer.echobase.EchoBaseConfiguration; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.entities.EchoBaseDAOHelper; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; @@ -36,7 +37,6 @@ import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.metadata.DbMeta; import java.util.Date; import java.util.List; @@ -121,7 +121,7 @@ return serviceContext.getLocale(); } - protected final DbMeta<EchoBaseEntityEnum> getDbMeta() { + protected final EchoBaseDbMeta getDbMeta() { return serviceContext.getDbMeta(); } 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-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-08-22 10:54:29 UTC (rev 561) @@ -30,7 +30,6 @@ import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ExportQuery; -import fr.ifremer.echobase.entities.EchoBaseMetadatas; import fr.ifremer.echobase.services.exceptions.ExportQueryNameAlreadyExistException; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; @@ -172,13 +171,13 @@ // export db steps - nbSteps += EchoBaseMetadatas.getReferenceEntries(getDbMeta()).length; + nbSteps += getDbMeta().getReferenceEntriesSize(); if (model.getVoyageIds() != null) { nbSteps += model.getVoyageIds().length; } // import db stesp - nbSteps += EchoBaseMetadatas.getEntries(getDbMeta()).length; + nbSteps += getDbMeta().getEntriesSize(); return nbSteps; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportDbService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportDbService.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportDbService.java 2012-08-22 10:54:29 UTC (rev 561) @@ -24,29 +24,28 @@ package fr.ifremer.echobase.services; import com.google.common.base.Preconditions; -import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import fr.ifremer.echobase.EchoBaseIOUtil; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.EchoBaseMetadatas; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaPersistenceHelper; import org.nuiton.topia.persistence.csv.out.ExportEntityVisitor; import org.nuiton.topia.persistence.csv.out.ExportModelFactory; import org.nuiton.topia.persistence.csv.out.TopiaCsvExports; import org.nuiton.topia.persistence.metadata.AssociationMeta; -import org.nuiton.topia.persistence.metadata.MetaFilenameAware; import org.nuiton.topia.persistence.metadata.TableMeta; -import org.nuiton.topia.persistence.TopiaPersistenceHelper; import org.nuiton.util.FileUtil; import org.nuiton.util.TimeLog; import java.io.File; import java.io.IOException; +import java.util.List; import java.util.Map; import java.util.Set; @@ -88,23 +87,23 @@ FileUtil.createDirectoryIfNecessary(dir); - MetaFilenameAware<EchoBaseEntityEnum>[] entries = EchoBaseMetadatas.getEntries(getDbMeta()); + EchoBaseDbMeta dbMeta = getDbMeta(); - model.setNbSteps(entries.length); + model.setNbSteps(dbMeta.getEntriesSize()); - for (MetaFilenameAware<EchoBaseEntityEnum> entry : entries) { + for (TableMeta<EchoBaseEntityEnum> meta : dbMeta.getAllTables()) { model.incrementsProgression(); - File entryFile = new File(dir, entry.getFilename()); - if (entry instanceof AssociationMeta) { - AssociationMeta<EchoBaseEntityEnum> associationMeta = (AssociationMeta<EchoBaseEntityEnum>) entry; - exportService.exportData(associationMeta, entryFile); - } else { - TableMeta<EchoBaseEntityEnum> meta = (TableMeta<EchoBaseEntityEnum>) entry; - exportService.exportData(meta, entryFile); - } + exportService.exportData(meta, new File(dir, meta.getFilename())); } + + for (AssociationMeta<EchoBaseEntityEnum> meta : dbMeta.getAllAssociations()) { + + model.incrementsProgression(); + + exportService.exportData(meta, new File(dir, meta.getFilename())); + } if (log.isInfoEnabled()) { log.info("Export zip file = " + zipFile); } @@ -137,13 +136,13 @@ ExportService exportService = getService(ExportService.class); // export all referentiel - MetaFilenameAware<EchoBaseEntityEnum>[] refEntries = EchoBaseMetadatas.getReferenceEntries( - getDbMeta()); + List<TableMeta<EchoBaseEntityEnum>> refEntries = getDbMeta().getReferenceTables(); + List<AssociationMeta<EchoBaseEntityEnum>> refAssocEntries = getDbMeta().getReferenceAssociations(); boolean withVoyages = model.getVoyageIds() != null; if (computeSteps) { - int nbstesp = refEntries.length; + int nbstesp = refEntries.size(); if (withVoyages) { nbstesp += model.getVoyageIds().length; @@ -151,25 +150,28 @@ model.setNbSteps(nbstesp); } - for (MetaFilenameAware<EchoBaseEntityEnum> entry : refEntries) { + for (TableMeta<EchoBaseEntityEnum> meta : refEntries) { + model.incrementsProgression(); - File entryFile = new File(dir, entry.getFilename()); - if (entry instanceof AssociationMeta) { - AssociationMeta<EchoBaseEntityEnum> associationMeta = (AssociationMeta<EchoBaseEntityEnum>) entry; - exportService.exportData(associationMeta, entryFile); - } else { - TableMeta<EchoBaseEntityEnum> meta = (TableMeta<EchoBaseEntityEnum>) entry; - exportService.exportData(meta, entryFile); - } + File entryFile = new File(dir, meta.getFilename()); + exportService.exportData(meta, entryFile); } + for (AssociationMeta<EchoBaseEntityEnum> associationMeta : refAssocEntries) { + + model.incrementsProgression(); + + File entryFile = new File(dir, associationMeta.getFilename()); + exportService.exportData(associationMeta, entryFile); + } + if (withVoyages) { - MetaFilenameAware<EchoBaseEntityEnum>[] dataEntries = - EchoBaseMetadatas.getDataEntries(getDbMeta()); - Multimap<EchoBaseEntityEnum, MetaFilenameAware<EchoBaseEntityEnum>> dataAssociationEntries = - EchoBaseMetadatas.getDataAssociationsEntries(getDbMeta()); + List<TableMeta<EchoBaseEntityEnum>> dataEntries = + getDbMeta().getDataTables(); + List<AssociationMeta<EchoBaseEntityEnum>> dataAssociationEntries = + getDbMeta().getDataAssociations(); ReplicateEntityVisitor visitor = createVisitor( exportService.getModelFactory(false), @@ -196,8 +198,8 @@ } public ReplicateEntityVisitor createVisitor(ExportModelFactory<EchoBaseEntityEnum> modelFactory, - MetaFilenameAware<EchoBaseEntityEnum>[] entityMetas, - Multimap<EchoBaseEntityEnum, MetaFilenameAware<EchoBaseEntityEnum>> associations, + List<TableMeta<EchoBaseEntityEnum>> entityMetas, + List<AssociationMeta<EchoBaseEntityEnum>> associations, File container) { Preconditions.checkNotNull(modelFactory); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-08-22 10:54:29 UTC (rev 561) @@ -27,16 +27,15 @@ import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EntityModificationLog; -import fr.ifremer.echobase.entities.EchoBaseMetadatas; import org.apache.commons.io.IOUtils; 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.persistence.TopiaDAO; -import org.nuiton.topia.persistence.metadata.MetaFilenameAware; import org.nuiton.topia.persistence.csv.in.CsvImportResult; 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.util.TimeLog; import java.io.File; @@ -84,15 +83,16 @@ List<String> missingEntries = Lists.newArrayList(); - MetaFilenameAware<EchoBaseEntityEnum>[] entries = - EchoBaseMetadatas.getEntries(getDbMeta()); + Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables = TopiaCsvImports.discoverEntries( + "echobase/", getDbMeta().getAllTables(), + zipFile, missingEntries); - Map<MetaFilenameAware<EchoBaseEntityEnum>, ZipEntry> entriestoConsume = TopiaCsvImports.discoverEntries( - "echobase/", entries, + Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations = TopiaCsvImports.discoverEntries( + "echobase/", getDbMeta().getAllAssociations(), zipFile, missingEntries); if (computeSteps) { - int size = entriestoConsume.size(); + int size = tables.size() + associations.size(); model.setNbSteps(size + missingEntries.size()); } @@ -106,54 +106,17 @@ } } - // consume all found entries - for (Map.Entry<MetaFilenameAware<EchoBaseEntityEnum>, ZipEntry> entry : - entriestoConsume.entrySet()) { + DefaultImportStrategy strategy = new DefaultImportStrategy( + getService(ImportService.class), + getTransaction(), + getDbMeta().getPersistenceHelper(), + 1000 + ); - model.incrementsProgression(); + importTables(strategy, model, zipFile, tables, commitAfterEachFile); - MetaFilenameAware<EchoBaseEntityEnum> entryDef = entry.getKey(); - ZipEntry value = entry.getValue(); - CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult( - entryDef.getSource(), - value.getName(), - false - ); + importAssociations(strategy, model, zipFile, associations); - Reader reader = IOUtils.toBufferedReader(new InputStreamReader(zipFile.getInputStream(value))); - try { - long s0 = TimeLog.getTime(); - - if (log.isInfoEnabled()) { - log.info("Will import " + entry); - } - - ImportService importService = getService(ImportService.class); - - TopiaCsvImports.importFile((TopiaContextImplementor) getTransaction(), - importService, - entryDef, - reader, - csvResult); - - TIME_LOG.log(s0, "importFile::done"); - - s0 = TimeLog.getTime(); - - flushTransaction(); - - TIME_LOG.log(s0, "importFile::flushTransaction"); - } finally { - reader.close(); - - if (commitAfterEachFile) { - commitTransaction( - "Could not commit db import from file " + - file + "#" + entryDef.getFilename()); - } - } - } - // add a log entry of import db if (log.isInfoEnabled()) { log.info("Import done with user " + user.getEmail()); @@ -175,171 +138,98 @@ } } -// public void importFile(MetaFilenameAware<EchoBaseEntityEnum> entry, -// Reader reader, -// CsvImportResult<EchoBaseEntityEnum> csvResult) throws IOException, TopiaException { -// -// long s0 = TimeLog.getTime(); -// -// if (log.isInfoEnabled()) { -// log.info("Will import " + entry); -// } -// -// ImportService importService = getService(ImportService.class); -// -// TopiaCsvImports.importFile((TopiaContextImplementor) getTransaction(), -// importService, -// entry, -// reader, -// csvResult); -// -// if (entry instanceof AssociationMeta) { -// -// // load a association input -// AssociationMeta<EchoBaseEntityEnum> meta = (AssociationMeta<EchoBaseEntityEnum>) entry; -// ImportModel<Map<String, Object>> model = -// importService.buildForImport(meta); -// ImportToMap importer = ImportToMap.newImportToMap(model, reader, false); -// -// -// try { -// if (isNMAssociationMeta(meta)) { -// TopiaCsvImports.importNMAssociationFile(getTransaction(), meta, importer, csvResult, 1000); -// } else { -// TopiaCsvImports.importAssociationFile(getTransaction(), meta, importer, csvResult, 1000); -// } -// } finally { -// importer.close(); -// } -// -// } else { -// -// // normal entity table import -// TableMeta<EchoBaseEntityEnum> meta = (TableMeta<EchoBaseEntityEnum>) entry; -// ImportModel<TopiaEntity> model = importService.buildForImport(meta); -// Import<TopiaEntity> importer = Import.newImport(model, reader); -// -// try { -// TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource()); -// TopiaCsvImports.importEntityFile(dao, meta, importer, csvResult); -// } finally { -// importer.close(); -// } -// } -// -// TIME_LOG.log(s0, "importFile::done"); -// -// s0 = TimeLog.getTime(); -// -// flushTransaction(); -// -// TIME_LOG.log(s0, "importFile::flushTransaction"); -// } -// -// protected boolean isNMAssociationMeta(AssociationMeta<EchoBaseEntityEnum> meta) { -// EchoBaseEntityEnum source = meta.getSource(); -// EchoBaseEntityEnum target = meta.getTarget(); -// boolean result = false; -// if (source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Echotype || -// source == EchoBaseEntityEnum.Echotype && target == EchoBaseEntityEnum.Species || -// source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Strata) { -// result = true; -// } -// return result; -// } -// -// public Map<MetaFilenameAware<EchoBaseEntityEnum>, ZipEntry> discoverEntries(ZipFile zipFile, -// List<String> missingEntries) { -// -// Map<MetaFilenameAware<EchoBaseEntityEnum>, ZipEntry> result = -// Maps.newLinkedHashMap(); -// -// MetaFilenameAware<EchoBaseEntityEnum>[] entries = -// EchoBaseMetadatas.getEntries(getDbMeta()); -// -// // check that all mandatories -// for (MetaFilenameAware<EchoBaseEntityEnum> entry : entries) { -// String filename = entry.getFilename(); -// ZipEntry zipEntry = zipFile.getEntry("echobase/" + filename); -// -// if (zipEntry == null) { -// missingEntries.add(filename); -// } else { -// result.put(entry, zipEntry); -// } -// } -//// if (!missingEntries.isEmpty() && log.isWarnEnabled()) { -//// log.warn("There is " + missingEntries.size() + " missing files " + -//// " in import " + file + "\n" + StringUtil.join(missingEntries, "\n", false)); -//// } -// -// return result; -// } -// -// protected void importEntityFile(TableMeta<EchoBaseEntityEnum> meta, -// Import<TopiaEntity> importer, -// CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException { -// -// TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource()); -// -// for (TopiaEntity entity : importer) { -// -// Map<String, Object> properties = meta.prepareCreate( -// entity, entity.getTopiaId()); -// TopiaEntity entityToSave = dao.create(properties); -// -// meta.copy(entity, entityToSave); -// -// csvResult.incrementsNumberUpdated(); -// } -// } -// -// protected void importAssociationFile(AssociationMeta<EchoBaseEntityEnum> meta, -// ImportToMap importer, -// CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException { -// -// EchoBaseEntityEnum source = meta.getSource(); -// EchoBaseEntityEnum target = meta.getTarget(); -// -// StringBuilder builder = new StringBuilder(); -// -// String updateString; -// String targetTableName = target.getContract().getSimpleName(); -// String sourceTableName = source.getContract().getSimpleName(); -// String table = targetTableName; -// if (source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Echotype || -// source == EchoBaseEntityEnum.Echotype && target == EchoBaseEntityEnum.Species || -// source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Strata) { -// // relation *-* -// table = TopiaEntityHelper.getNormalizedAssociationTableName(sourceTableName, targetTableName); -// updateString = "INSERT INTO " + table + " (" + sourceTableName + "," + targetTableName + ") VALUES('%s','%s');"; -// } else { -// updateString = "UPDATE " + table + " SET " + sourceTableName + " = '%s' WHERE topiaId ='%s';"; -// } -// -// if (log.isDebugEnabled()) { -// log.debug("Will apply " + updateString); -// } -// int compt = 0; -// for (Map<String, Object> row : importer) { -// String topiaId = (String) row.get(TopiaEntity.TOPIA_ID); -// String[] associations = (String[]) row.get("target"); -// for (String association : associations) { -// if (StringUtils.isNotEmpty(association)) { -// builder.append(String.format(updateString, topiaId, association)).append('\n'); -// compt++; -// if (compt % 1000 == 0) { -// // flush it -// getTransaction().executeSQL(builder.toString()); -// builder = new StringBuilder(); -// } -// } -// } -// csvResult.incrementsNumberUpdated(); -// } -// if (builder.length() > 0) { -// getTransaction().executeSQL(builder.toString()); -// } -// } + private void importTables(DefaultImportStrategy strategy, + ImportDbConfiguration model, + ZipFile zipFile, + Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> entriestoConsume, + boolean commitAfterEachFile) throws IOException, TopiaException { + + for (Map.Entry<TableMeta<EchoBaseEntityEnum>, ZipEntry> entry : + entriestoConsume.entrySet()) { + + model.incrementsProgression(); + + TableMeta<EchoBaseEntityEnum> entryDef = entry.getKey(); + ZipEntry value = entry.getValue(); + CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult( + entryDef.getSource(), + value.getName(), + false + ); + + Reader reader = IOUtils.toBufferedReader(new InputStreamReader(zipFile.getInputStream(value))); + try { + + long s0 = TimeLog.getTime(); + + if (log.isInfoEnabled()) { + log.info("Will import " + entryDef); + } + TopiaCsvImports.importTable(reader, + strategy, + entryDef, + csvResult + ); + + s0 = TIME_LOG.log(s0, "importFile::done"); + + flushTransaction(); + + TIME_LOG.log(s0, "importFile::flushTransaction"); + } finally { + reader.close(); + + if (commitAfterEachFile) { + commitTransaction( + "Could not commit db import from file " + + zipFile.getName() + "#" + entryDef.getFilename()); + } + } + } + } + + private void importAssociations(DefaultImportStrategy strategy, + ImportDbConfiguration model, + ZipFile zipFile, + Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws IOException, TopiaException { + + for (Map.Entry<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> entry : + associations.entrySet()) { + + model.incrementsProgression(); + + AssociationMeta<EchoBaseEntityEnum> entryDef = entry.getKey(); + ZipEntry value = entry.getValue(); + + CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult( + entryDef.getSource(), + value.getName(), + false + ); + + Reader reader = IOUtils.toBufferedReader(new InputStreamReader(zipFile.getInputStream(value))); + try { + long s0 = TimeLog.getTime(); + + if (log.isInfoEnabled()) { + log.info("Will import " + entryDef); + } + + TopiaCsvImports.importAssociationFile(reader, + strategy, + entryDef, + csvResult); + + s0 = TIME_LOG.log(s0, "importFile::done"); + + flushTransaction(); + + TIME_LOG.log(s0, "importFile::flushTransaction"); + } finally { + reader.close(); + } + } + } + } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportService.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportService.java 2012-08-22 10:54:29 UTC (rev 561) @@ -31,13 +31,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.metadata.AssociationMeta; -import org.nuiton.topia.persistence.metadata.ColumnMeta; -import org.nuiton.topia.persistence.metadata.TableMeta; import org.nuiton.topia.persistence.csv.EntityCsvModel; import org.nuiton.topia.persistence.csv.in.CsvImportResult; import org.nuiton.topia.persistence.csv.in.EntityAssociationImportModel; import org.nuiton.topia.persistence.csv.in.ImportModelFactory; +import org.nuiton.topia.persistence.metadata.AssociationMeta; +import org.nuiton.topia.persistence.metadata.ColumnMeta; +import org.nuiton.topia.persistence.metadata.TableMeta; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportModel; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2012-08-22 10:54:29 UTC (rev 561) @@ -31,7 +31,6 @@ import org.apache.commons.lang3.StringUtils; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaFilterPagerUtil; -import org.nuiton.util.PagerUtil; import org.nuiton.util.StringUtil; import java.util.List; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java 2012-08-22 10:54:29 UTC (rev 561) @@ -29,7 +29,6 @@ import fr.ifremer.echobase.EchoBasePredicates; import fr.ifremer.echobase.InputFile; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; -import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Cell; @@ -54,6 +53,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportRuntimeException; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java 2012-08-22 10:54:29 UTC (rev 561) @@ -27,7 +27,6 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.InputFile; -import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Category; @@ -52,6 +51,7 @@ import fr.ifremer.echobase.services.importdata.csv.MapCellImportRow; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; import org.nuiton.util.csv.Import; import org.nuiton.util.csv.ImportRuntimeException; import org.nuiton.util.csv.ext.CsvReaders; @@ -192,7 +192,7 @@ configuration.incrementsProgression(); - int rowNumber=0; + int rowNumber = 0; for (MapCellImportRow row : importer) { doFlushTransaction(++rowNumber, inputFile); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,7 +23,6 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Data; @@ -31,6 +30,7 @@ import fr.ifremer.echobase.entities.data.DataProcessing; import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.DataQuality; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportRow.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/AcousticImportRow.java 2012-08-22 10:54:29 UTC (rev 561) @@ -368,7 +368,7 @@ this.soundCelerity = soundCelerity; } - public DataQuality getDataQuality() { + public DataQuality getDataQuality() { return dataQuality; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/BiometrySampleImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/BiometrySampleImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/BiometrySampleImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,13 +23,13 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.data.SampleData; import fr.ifremer.echobase.entities.references.SampleDataType; import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EchotypeImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EchotypeImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EchotypeImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,12 +23,12 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,7 +23,6 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; @@ -33,6 +32,7 @@ import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultByEchotypeImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,7 +23,6 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; @@ -31,6 +30,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataQuality; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,7 +23,6 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Result; @@ -31,6 +30,7 @@ import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,7 +23,6 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Result; @@ -31,6 +30,7 @@ import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/GearMetadataValueImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/GearMetadataValueImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/GearMetadataValueImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,13 +23,13 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.GearMetadataValue; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.references.Gear; import fr.ifremer.echobase.entities.references.GearMetadata; import fr.ifremer.echobase.entities.references.Vessel; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthAgeKeyImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthAgeKeyImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthAgeKeyImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,12 +23,12 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.LengthAgeKey; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.entities.references.Strata; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,13 +23,13 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.LengthWeightKey; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.entities.references.Strata; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/MapCellImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,7 +23,6 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.AgeCategory; @@ -32,6 +31,7 @@ import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,12 +23,12 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Gear; import fr.ifremer.echobase.entities.references.Vessel; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationMetadataValueImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationMetadataValueImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/OperationMetadataValueImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,12 +23,12 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.OperationMetadataValue; import fr.ifremer.echobase.entities.references.OperationMetadata; import fr.ifremer.echobase.entities.references.Vessel; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellAssociationImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellAssociationImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellAssociationImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,11 +23,11 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.CellDAO; import fr.ifremer.echobase.entities.data.Voyage; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,11 +23,11 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.DataQuality; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/RegionCellResultImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,7 +23,6 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; @@ -32,6 +31,7 @@ import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; @@ -45,7 +45,6 @@ public class RegionCellResultImportModel extends AbstractImportModel<RegionCellResultImportRow> { - public static final String[] COLUMN_NAMES_TO_EXCLUDE = { EchoBaseCsvUtil.CELL_NAME, Species.PROPERTY_BARACOUDA_CODE, Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/SubSampleImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/SubSampleImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/SubSampleImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,7 +23,6 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Sample; @@ -31,6 +30,7 @@ import fr.ifremer.echobase.entities.references.SexCategory; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TotalSampleImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TotalSampleImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TotalSampleImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,12 +23,12 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransectImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransectImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransectImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,11 +23,11 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Vessel; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransitImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransitImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/TransitImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,10 +23,10 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/VoyageImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/VoyageImportModel.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/VoyageImportModel.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,10 +23,10 @@ */ package fr.ifremer.echobase.services.importdata.csv; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.data.VoyageImpl; +import org.nuiton.topia.persistence.csv.in.AbstractImportModel; /** * Model to import Voyages. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java 2012-08-22 10:54:29 UTC (rev 561) @@ -28,8 +28,7 @@ import fr.ifremer.echobase.EchoBaseConfigurationOption; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.EchoBaseMetadatas; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -38,7 +37,6 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.TopiaRuntimeException; -import org.nuiton.topia.persistence.metadata.DbMeta; import org.nuiton.util.FileUtil; import java.io.File; @@ -189,8 +187,8 @@ } @Override - public DbMeta<EchoBaseEntityEnum> getDbMeta() { - return EchoBaseMetadatas.newDbMeta(); + public EchoBaseDbMeta getDbMeta() { + return EchoBaseDbMeta.newDbMeta(); } @Override Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2012-08-22 10:54:29 UTC (rev 561) @@ -32,9 +32,8 @@ import com.healthmarketscience.jackcess.Table; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBaseIOUtil; -import fr.ifremer.echobase.entities.EchoBaseMetadatas; -import org.nuiton.util.csv.ext.AbstractExportModel; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -42,6 +41,7 @@ import org.nuiton.util.FileUtil; import org.nuiton.util.csv.Export; import org.nuiton.util.csv.ValueFormatter; +import org.nuiton.util.csv.ext.AbstractExportModel; import java.io.File; import java.io.FileFilter; @@ -107,6 +107,8 @@ Database db = Database.open(msAccessFile); + EchoBaseDbMeta metas = EchoBaseDbMeta.newDbMeta(); + for (Table table : db) { MSAccessToCsvExportModel model = new MSAccessToCsvExportModel(table); @@ -120,7 +122,8 @@ } } - public void createEchoBaseLegacyDataDb(File sourceDir, + public void createEchoBaseLegacyDataDb(EchoBaseDbMeta metas, + File sourceDir, File outputDir, File zipFile) throws IOException, TopiaException { @@ -128,8 +131,8 @@ File baracoudaDir = new File(sourceDir, FileType.BARACOUDA.name().toLowerCase()); File associationDir = new File(sourceDir, FileType.ASSOCIATION.name().toLowerCase()); - FileFilter entityFile = new EntityFileFilter(EchoBaseMetadatas.getDataTypes()); - FileFilter associationFileFilter = new AssociationFileFilter(EchoBaseMetadatas.getDataTypes()); + FileFilter entityFile = new EntityFileFilter(metas.getDataTypes()); + FileFilter associationFileFilter = new AssociationFileFilter(metas.getDataTypes()); FileUtil.createDirectoryIfNecessary(outputDir); @@ -159,7 +162,8 @@ EchoBaseIOUtil.compressZipFile(zipFile, outputDir, false); } - public void createEchoBaseReferentielDb(File sourceDir, + public void createEchoBaseReferentielDb(EchoBaseDbMeta metas, + File sourceDir, File outputDir, File zipFile) throws IOException, TopiaException { @@ -167,8 +171,8 @@ File baracoudaDir = new File(sourceDir, FileType.BARACOUDA.name().toLowerCase()); File associationDir = new File(sourceDir, FileType.ASSOCIATION.name().toLowerCase()); - FileFilter entityFile = new EntityFileFilter(EchoBaseMetadatas.getReferenceTypes()); - FileFilter associationFileFilter = new AssociationFileFilter(EchoBaseMetadatas.getReferenceTypes()); + FileFilter entityFile = new EntityFileFilter(metas.getReferenceTypes()); + FileFilter associationFileFilter = new AssociationFileFilter(metas.getReferenceTypes()); FileUtil.createDirectoryIfNecessary(outputDir); @@ -225,9 +229,9 @@ } private static class EntityFileFilter implements FileFilter { - final EchoBaseEntityEnum[] allowedTypes; + final Iterable<EchoBaseEntityEnum> allowedTypes; - private EntityFileFilter(EchoBaseEntityEnum[] allowedTypes) { + private EntityFileFilter(Iterable<EchoBaseEntityEnum> allowedTypes) { this.allowedTypes = allowedTypes; } @@ -252,9 +256,9 @@ } private static class AssociationFileFilter implements FileFilter { - final EchoBaseEntityEnum[] allowedTypes; + final Iterable<EchoBaseEntityEnum> allowedTypes; - private AssociationFileFilter(EchoBaseEntityEnum[] allowedTypes) { + private AssociationFileFilter(Iterable<EchoBaseEntityEnum> allowedTypes) { this.allowedTypes = allowedTypes; } Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java =================================================================== --- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-08-22 10:54:29 UTC (rev 561) @@ -26,8 +26,7 @@ import fr.ifremer.echobase.EchoBaseConfiguration; import fr.ifremer.echobase.EchoBaseConfigurationOption; import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; -import fr.ifremer.echobase.entities.EchoBaseDAOHelper; -import fr.ifremer.echobase.entities.EchoBaseMetadatas; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseService; import fr.ifremer.echobase.services.EchoBaseServiceContext; @@ -102,7 +101,7 @@ Locale.getDefault(), topiaContext.beginTransaction(), configuration, - EchoBaseMetadatas.newDbMeta(), + EchoBaseDbMeta.newDbMeta(), new EchoBaseServiceFactory() ); } @@ -122,7 +121,7 @@ } protected <E extends TopiaEntity> TopiaDAO<E> getDao(Class<E> entityClass) throws TopiaException { - TopiaDAO<E> dao = EchoBaseDAOHelper.<E, TopiaDAO<E>>getDAO(serviceContext.getTransaction(), entityClass); + TopiaDAO<E> dao = serviceContext.getDbMeta().getPersistenceHelper().getDAO(serviceContext.getTransaction(), entityClass); return dao; } Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java =================================================================== --- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java 2012-08-22 10:54:29 UTC (rev 561) @@ -23,6 +23,7 @@ */ package fr.ifremer.echobase.tools; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import org.apache.commons.io.FileUtils; import org.junit.Assert; import org.junit.BeforeClass; @@ -51,9 +52,14 @@ static String dbVersion; + + protected static EchoBaseDbMeta dbMetas; + @BeforeClass public static void beforeTest() throws IOException { + dbMetas = EchoBaseDbMeta.newDbMeta(); + String dbDestination = System.getenv("dbDestination"); dbVersion = System.getenv("dbVersion"); @@ -79,7 +85,10 @@ File sourceDir = TestHelper.getCsvResourceDirectory(); - new EchoBaseDbCreator().createEchoBaseLegacyDataDb(sourceDir, dir, distributionFile); + new EchoBaseDbCreator().createEchoBaseLegacyDataDb(dbMetas, + sourceDir, + dir, + distributionFile); Assert.assertTrue(distributionFile.exists()); @@ -104,7 +113,10 @@ File sourceDir = TestHelper.getCsvResourceDirectory(); - new EchoBaseDbCreator().createEchoBaseReferentielDb(sourceDir, dir, distributionFile); + new EchoBaseDbCreator().createEchoBaseReferentielDb(dbMetas, + sourceDir, + dir, + distributionFile); Assert.assertTrue(distributionFile.exists()); Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java =================================================================== --- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java 2012-08-22 10:54:29 UTC (rev 561) @@ -41,11 +41,11 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.csv.in.CsvImportResult; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.DbMeta; import org.nuiton.topia.persistence.metadata.MetaFilenameAware; import org.nuiton.topia.persistence.metadata.TableMeta; -import org.nuiton.topia.persistence.csv.in.CsvImportResult; import org.nuiton.util.FileUtil; import java.io.File; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2012-08-22 10:54:29 UTC (rev 561) @@ -24,9 +24,8 @@ package fr.ifremer.echobase.ui; import fr.ifremer.echobase.EchoBaseConfiguration; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.persistence.metadata.DbMeta; /** * @author tchemit <chemit@codelutin.com> @@ -36,7 +35,7 @@ protected EchoBaseConfiguration configuration; - protected DbMeta<EchoBaseEntityEnum> dbMeta; + protected EchoBaseDbMeta dbMeta; protected TopiaContext rootContext; @@ -56,11 +55,11 @@ this.rootContext = rootContext; } - public DbMeta<EchoBaseEntityEnum> getDbMeta() { + public EchoBaseDbMeta getDbMeta() { return dbMeta; } - public void setDbMeta(DbMeta<EchoBaseEntityEnum> dbMeta) { + public void setDbMeta(EchoBaseDbMeta dbMeta) { this.dbMeta = dbMeta; } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-08-22 10:54:29 UTC (rev 561) @@ -26,10 +26,9 @@ import fr.ifremer.echobase.EchoBaseConfiguration; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseDbMeta; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserImpl; -import fr.ifremer.echobase.entities.EchoBaseMetadatas; import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceFactory; @@ -46,7 +45,6 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaUtil; -import org.nuiton.topia.persistence.metadata.DbMeta; import org.nuiton.util.converter.ConverterUtil; import javax.servlet.ServletContextEvent; @@ -101,9 +99,8 @@ new EchoBaseTopiaRootContextFactory(); rootContext = factory.newDatabaseFromConfig(configuration); applicationContext.setRootContext(rootContext); - DbMeta<EchoBaseEntityEnum> dbMeta = EchoBaseMetadatas.newDbMeta(); - applicationContext.setDbMeta(dbMeta); + applicationContext.setDbMeta(EchoBaseDbMeta.newDbMeta()); // register our not locale dependant converter Converter converter = ConverterUtil.getConverter(Float.class); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2012-08-22 10:54:29 UTC (rev 561) @@ -25,11 +25,11 @@ import com.opensymphony.xwork2.interceptor.annotations.InputConfig; import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import org.nuiton.topia.persistence.csv.in.CsvImportResult; import fr.ifremer.echobase.services.ImportService; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.csv.in.CsvImportResult; import java.io.File; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2012-08-22 10:54:29 UTC (rev 561) @@ -100,6 +100,6 @@ @Override public void setParameters(Map<String, String[]> parameters) { - this.parameters=parameters; + this.parameters = parameters; } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2012-08-21 16:39:57 UTC (rev 560) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2012-08-22 10:54:29 UTC (rev 561) @@ -100,6 +100,6 @@ @Override public void setParameters(Map<String, String[]> parameters) { - this.parameters=parameters; + this.parameters = parameters; } } \ No newline at end of file