r355 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities tutti-service/src/main/java/fr/ifremer/tutti/service tutti-service/src/main/java/fr/ifremer/tutti/service/referential tutti-service/src/test/java/fr/ifremer/tutti/service tutti-service/src/test/java/fr/ifremer/tutti/service/protocol tutti-service/src/test/java/fr/ifremer/tutti/service/referential tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/s
Author: tchemit Date: 2013-02-07 09:26:42 +0100 (Thu, 07 Feb 2013) New Revision: 355 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/355 Log: - implements referential import / export service (but not the persistence one) - improve tests Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportServiceTest.java Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-07 08:26:42 UTC (rev 355) @@ -46,7 +46,6 @@ import fr.ifremer.tutti.persistence.entities.referential.Zone; import org.springframework.transaction.annotation.Transactional; -import java.io.File; import java.util.List; /** @@ -186,74 +185,42 @@ boolean isSortedQualitativeValue(CaracteristicQualitativeValue value); /** - * Import temporary species from the given csv import file. + * Import given temporary species. * - * @param importFile csv file to import + * @param species species to import * @since 1.0 */ @Transactional(readOnly = false) - void importTemporarySpecies(File importFile); + List<Species> importTemporarySpecies(List<Species> species); /** - * Export some example temporary species to the given file. + * Import given temporary vessels. * - * @param exportFile file where to export data + * @param vessels vessels to import * @since 1.0 */ - void exportTemporarySpeciesExample(File exportFile); - - /** - * Import temporary vessels from the given csv import file. - * - * @param importfile csv file to import - * @since 1.0 - */ @Transactional(readOnly = false) - void importTemporaryVessel(File importfile); + List<Vessel> importTemporaryVessel(List<Vessel> vessels); /** - * Export some example temporary vessels to the given file. + * Import given temporary persons. * - * @param exportFile file where to export data + * @param persons persons to import * @since 1.0 */ - void exportTemporaryVesselExample(File exportFile); - - /** - * Import temporary persons from the given csv import file. - * - * @param importFile csv file to import - * @since 1.0 - */ @Transactional(readOnly = false) - void importTemporaryPerson(File importFile); + List<Person> importTemporaryPerson(List<Person> persons); /** - * Export some example temporary person to the given file. + * Import given temporary gears. * - * @param exportFile file where to export data + * @param gears gears to import * @since 1.0 */ - void exportTemporaryPersonExample(File exportFile); - - /** - * Import temporary gears from the given csv import file. - * - * @param importFile csv file to import - * @since 1.0 - */ @Transactional(readOnly = false) - void importTemporaryGear(File importFile); + List<Gear> importTemporaryGear(List<Gear> gears); - /** - * Export some example temporary gears to the given file. - * - * @param exportFile file where to export data - * @since 1.0 - */ - void exportTemporaryGearExample(File exportFile); - //------------------------------------------------------------------------// //-- Program methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-07 08:26:42 UTC (rev 355) @@ -380,45 +380,25 @@ } @Override - public void importTemporarySpecies(File importFile) { + public List<Species> importTemporarySpecies(List<Species> species) { throw new IllegalStateException("method 'importTemporarySpecies' not implemented"); } @Override - public void importTemporaryVessel(File importfile) { + public List<Vessel> importTemporaryVessel(List<Vessel> vessels) { throw new IllegalStateException("method 'importTemporaryVessel' not implemented"); } @Override - public void importTemporaryPerson(File importFile) { + public List<Person> importTemporaryPerson(List<Person> persons) { throw new IllegalStateException("method 'importTemporaryPerson' not implemented"); } @Override - public void importTemporaryGear(File importFile) { + public List<Gear> importTemporaryGear(List<Gear> gears) { throw new IllegalStateException("method 'importTemporaryGear' not implemented"); } - @Override - public void exportTemporarySpeciesExample(File exportFile) { - throw new IllegalStateException("method 'exportTemporarySpeciesExample' not implemented"); - } - - @Override - public void exportTemporaryVesselExample(File exportFile) { - throw new IllegalStateException("method 'exportTemporaryVesselExample' not implemented"); - } - - @Override - public void exportTemporaryPersonExample(File exportFile) { - throw new IllegalStateException("method 'exportTemporaryPersonExample' not implemented"); - } - - @Override - public void exportTemporaryGearExample(File exportFile) { - throw new IllegalStateException("method 'exportTemporaryGearExample' not implemented"); - } - //------------------------------------------------------------------------// //-- Program methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-07 08:26:42 UTC (rev 355) @@ -62,7 +62,6 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; -import java.io.File; import java.io.IOException; import java.util.List; import java.util.Map; @@ -288,50 +287,25 @@ } @Override - public void importTemporarySpecies(File importFile) { - - List<Species> species = null; - referentialService.importTemporarySpecies(species); + public List<Species> importTemporarySpecies(List<Species> species) { + return referentialService.importTemporarySpecies(species); } @Override - public void importTemporaryVessel(File importfile) { - List<Vessel> vessels = null; - referentialService.importTemporaryVessel(vessels); + public List<Vessel> importTemporaryVessel(List<Vessel> vessels) { + return referentialService.importTemporaryVessel(vessels); } @Override - public void importTemporaryPerson(File importFile) { - List<Person> persons = null; - referentialService.importTemporaryPerson(persons); + public List<Person> importTemporaryPerson(List<Person> persons) { + return referentialService.importTemporaryPerson(persons); } @Override - public void importTemporaryGear(File importFile) { - List<Gear> gears = null; - referentialService.importTemporaryGear(gears); + public List<Gear> importTemporaryGear(List<Gear> gears) { + return referentialService.importTemporaryGear(gears); } - @Override - public void exportTemporarySpeciesExample(File exportFile) { - //TODO - } - - @Override - public void exportTemporaryVesselExample(File exportFile) { - //TODO - } - - @Override - public void exportTemporaryPersonExample(File exportFile) { - //TODO - } - - @Override - public void exportTemporaryGearExample(File exportFile) { - //TODO - } - //------------------------------------------------------------------------// //-- Program methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-02-07 08:26:42 UTC (rev 355) @@ -34,10 +34,13 @@ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.SystemUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.cfg.Environment; +import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; @@ -302,4 +305,33 @@ return result; } + public static File getTestSpecificDirectory(Class<?> testClassName, + String methodName, + String classifier, + long timestamp) { + // Trying to look for the temporary folder to store data for the test + String tempDirPath = System.getProperty("java.io.tmpdir"); + if (tempDirPath == null) { + // can this really occur ? + tempDirPath = ""; + if (log.isWarnEnabled()) { + log.warn("'\"java.io.tmpdir\" not defined"); + } + } + File tempDirFile = SystemUtils.getJavaIoTmpDir(); + + // create the directory to store database data + String dataBasePath = testClassName.getName() + + File.separator // a directory with the test class name + + methodName; // a sub-directory with the method name + + if (StringUtils.isNotBlank(classifier)) { + dataBasePath += classifier; + } + dataBasePath += '_' + + timestamp; // and a timestamp + File databaseFile = new File(tempDirFile, dataBasePath); + return databaseFile; + } + } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-02-07 08:26:42 UTC (rev 355) @@ -54,6 +54,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.transaction.annotation.Transactional; import java.io.File; import java.io.IOException; @@ -315,45 +316,29 @@ } @Override - public void importTemporarySpecies(File importFile) { - driver.importTemporarySpecies(importFile); + @Transactional(readOnly = false) + public List<Species> importTemporarySpecies(List<Species> species) { + return driver.importTemporarySpecies(species); } @Override - public void importTemporaryVessel(File importFile) { - driver.importTemporaryVessel(importFile); + @Transactional(readOnly = false) + public List<Vessel> importTemporaryVessel(List<Vessel> vessels) { + return driver.importTemporaryVessel(vessels); } @Override - public void importTemporaryPerson(File importFile) { - driver.importTemporaryPerson(importFile); + @Transactional(readOnly = false) + public List<Person> importTemporaryPerson(List<Person> persons) { + return driver.importTemporaryPerson(persons); } @Override - public void importTemporaryGear(File importFile) { - driver.importTemporaryGear(importFile); + @Transactional(readOnly = false) + public List<Gear> importTemporaryGear(List<Gear> gears) { + return driver.importTemporaryGear(gears); } - @Override - public void exportTemporarySpeciesExample(File exportFile) { - driver.exportTemporarySpeciesExample(exportFile); - } - - @Override - public void exportTemporaryVesselExample(File exportFile) { - driver.exportTemporaryVesselExample(exportFile); - } - - @Override - public void exportTemporaryPersonExample(File exportFile) { - driver.exportTemporaryPersonExample(exportFile); - } - - @Override - public void exportTemporaryGearExample(File exportFile) { - driver.exportTemporaryGearExample(exportFile); - } - //------------------------------------------------------------------------// //-- Program methods --// //------------------------------------------------------------------------// Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java (rev 0) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java 2013-02-07 08:26:42 UTC (rev 355) @@ -0,0 +1,57 @@ +package fr.ifremer.tutti.service.referential; + +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.service.TuttiCsvUtil; + +/** + * Model to import / export {@link Gear} in csv format. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class GearModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Gear> { + + public GearModel(char separator) { + super(separator); + + // import definition + + newMandatoryColumn(Gear.PROPERTY_NAME); + newMandatoryColumn(Gear.PROPERTY_LABEL); + + // export definition + + newColumnForExport(Gear.PROPERTY_NAME); + newColumnForExport(Gear.PROPERTY_LABEL); + } + + @Override + public Gear newEmptyInstance() { + return new Gear(); + } + +} Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java (rev 0) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java 2013-02-07 08:26:42 UTC (rev 355) @@ -0,0 +1,58 @@ +package fr.ifremer.tutti.service.referential; + +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.TuttiCsvUtil; + +/** + * Model to import / export {@link Person} in csv format. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class PersonModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Person> { + + public PersonModel(char separator) { + super(separator); + + // import definition + + newMandatoryColumn(Person.PROPERTY_FIRST_NAME); + newMandatoryColumn(Person.PROPERTY_LAST_NAME); + + // export definition + + newColumnForExport(Person.PROPERTY_FIRST_NAME); + newColumnForExport(Person.PROPERTY_LAST_NAME); + } + + @Override + public Person newEmptyInstance() { + return new Person(); + } + +} Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java (rev 0) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java 2013-02-07 08:26:42 UTC (rev 355) @@ -0,0 +1,55 @@ +package fr.ifremer.tutti.service.referential; + +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.TuttiCsvUtil; + +/** + * Model to import / export {@link Species} in csv format. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class SpeciesModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Species> { + + public SpeciesModel(char separator) { + super(separator); + + // import definition + + newMandatoryColumn(Species.PROPERTY_NAME); + + // export definition + + newColumnForExport(Species.PROPERTY_NAME); + } + + @Override + public Species newEmptyInstance() { + return new Species(); + } + +} Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java (rev 0) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java 2013-02-07 08:26:42 UTC (rev 355) @@ -0,0 +1,360 @@ +package fr.ifremer.tutti.service.referential; + +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.base.Charsets; +import com.google.common.collect.Lists; +import com.google.common.io.Closeables; +import com.google.common.io.Files; +import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.service.AbstractTuttiService; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.TuttiServiceContext; +import fr.ifremer.tutti.service.TuttiServiceTechnicalException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.csv.Export; +import org.nuiton.util.csv.Import; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.IOException; +import java.io.Reader; +import java.util.List; + +/** + * Service to import or export referential. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class TuttiReferentialImportExportService extends AbstractTuttiService { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(TuttiReferentialImportExportService.class); + + protected PersistenceService persistenceService; + + @Override + public void setServiceContext(TuttiServiceContext context) { + super.setServiceContext(context); + persistenceService = getService(PersistenceService.class); + } + + public List<Species> importTemporarySpecies(File file) throws IOException { + + if (log.isInfoEnabled()) { + log.info("Will import species from file: " + file); + } + + List<Species> toImport = Lists.newArrayList(); + + Reader reader = Files.newReader(file, Charsets.UTF_8); + try { + SpeciesModel csvModel = new SpeciesModel(getCsvSeparator()); + Import<Species> importer = Import.newImport(csvModel, reader); + + try { + + for (Species bean : importer) { + toImport.add(bean); + } + importer.close(); + } finally { + Closeables.closeQuietly(importer); + } + reader.close(); + } catch (Exception e) { + throw new IOException("Could not import species from file " + file, e); + } finally { + + Closeables.closeQuietly(reader); + } + + List<Species> result = + persistenceService.importTemporarySpecies(toImport); + return result; + } + + public List<Vessel> importTemporaryVessel(File file) throws IOException { + if (log.isInfoEnabled()) { + log.info("Will import vessels from file: " + file); + } + + List<Vessel> toImport = Lists.newArrayList(); + + Reader reader = Files.newReader(file, Charsets.UTF_8); + try { + VesselModel csvModel = new VesselModel(getCsvSeparator()); + Import<Vessel> importer = Import.newImport(csvModel, reader); + + try { + + for (Vessel bean : importer) { + toImport.add(bean); + } + importer.close(); + } finally { + Closeables.closeQuietly(importer); + } + reader.close(); + } catch (Exception e) { + throw new IOException("Could not import vessels from file " + file, e); + } finally { + + Closeables.closeQuietly(reader); + } + List<Vessel> result = + persistenceService.importTemporaryVessel(toImport); + return result; + } + + public List<Person> importTemporaryPerson(File file) throws IOException { + if (log.isInfoEnabled()) { + log.info("Will import persons from file: " + file); + } + + List<Person> toImport = Lists.newArrayList(); + + Reader reader = Files.newReader(file, Charsets.UTF_8); + try { + PersonModel csvModel = new PersonModel(getCsvSeparator()); + Import<Person> importer = Import.newImport(csvModel, reader); + + try { + + for (Person bean : importer) { + toImport.add(bean); + } + importer.close(); + } finally { + Closeables.closeQuietly(importer); + } + reader.close(); + } catch (Exception e) { + throw new IOException("Could not import persons from file " + file, e); + } finally { + + Closeables.closeQuietly(reader); + } + List<Person> result = + persistenceService.importTemporaryPerson(toImport); + return result; + } + + public List<Gear> importTemporaryGear(File file) throws IOException { + if (log.isInfoEnabled()) { + log.info("Will import gears from file: " + file); + } + + List<Gear> toImport = Lists.newArrayList(); + + Reader reader = Files.newReader(file, Charsets.UTF_8); + try { + GearModel csvModel = new GearModel(getCsvSeparator()); + Import<Gear> importer = Import.newImport(csvModel, reader); + + try { + + for (Gear bean : importer) { + toImport.add(bean); + } + importer.close(); + } finally { + Closeables.closeQuietly(importer); + } + reader.close(); + } catch (Exception e) { + throw new IOException("Could not import gears from file " + file, e); + } finally { + + Closeables.closeQuietly(reader); + } + List<Gear> result = + persistenceService.importTemporaryGear(toImport); + return result; + } + + public void exportTemporarySpeciesExample(File file) throws IOException { + + List<Species> toExport = Lists.newArrayList(); + + Species s; + + s = new Species(); + s.setName("Temporary Species name 1"); + toExport.add(s); + + s = new Species(); + s.setName("Temporary Species name 2"); + toExport.add(s); + + s = new Species(); + s.setName("Temporary Species name 3"); + toExport.add(s); + + SpeciesModel csvModel = new SpeciesModel(getCsvSeparator()); + + BufferedWriter writer = Files.newWriter(file, Charsets.UTF_8); + try { + Export export = Export.newExport(csvModel, toExport); + export.write(writer); + writer.close(); + } catch (IOException e) { + throw e; + } catch (Exception e) { + throw new TuttiServiceTechnicalException("Could not export species to file: " + file, e); + } finally { + Closeables.closeQuietly(writer); + } + + } + + public void exportTemporaryVesselExample(File file) throws IOException { + List<Vessel> toExport = Lists.newArrayList(); + + Vessel v; + + v = new Vessel(); + v.setName("Temporary fishing vessel name 1"); + v.setInternalRegistrationCode("International registration code F1"); + v.setScientificVessel(false); + toExport.add(v); + + v = new Vessel(); + v.setName("Temporary fishing vessel name 2"); + v.setInternalRegistrationCode("International registration code F2"); + v.setScientificVessel(false); + toExport.add(v); + + v = new Vessel(); + v.setName("Temporary scientific vessel name 3"); + v.setInternalRegistrationCode("International registration code S3"); + v.setScientificVessel(true); + toExport.add(v); + + v = new Vessel(); + v.setName("Temporary scientific vessel name 4"); + v.setInternalRegistrationCode("International registration code S4"); + v.setScientificVessel(true); + toExport.add(v); + + VesselModel csvModel = new VesselModel(getCsvSeparator()); + + BufferedWriter writer = Files.newWriter(file, Charsets.UTF_8); + try { + Export export = Export.newExport(csvModel, toExport); + export.write(writer); + writer.close(); + } catch (IOException e) { + throw e; + } catch (Exception e) { + throw new TuttiServiceTechnicalException("Could not export species to file: " + file, e); + } finally { + Closeables.closeQuietly(writer); + } + } + + public void exportTemporaryPersonExample(File file) throws IOException { + List<Person> toExport = Lists.newArrayList(); + + Person p; + + p = new Person(); + p.setFirstName("First name 1"); + p.setLastName("Last name 1"); + toExport.add(p); + + p = new Person(); + p.setFirstName("First name 2"); + p.setLastName("Last name 2"); + toExport.add(p); + + p = new Person(); + p.setFirstName("First name 3"); + p.setLastName("Last name 3"); + toExport.add(p); + + + PersonModel csvModel = new PersonModel(getCsvSeparator()); + + BufferedWriter writer = Files.newWriter(file, Charsets.UTF_8); + try { + Export export = Export.newExport(csvModel, toExport); + export.write(writer); + writer.close(); + } catch (IOException e) { + throw e; + } catch (Exception e) { + throw new TuttiServiceTechnicalException("Could not export species to file: " + file, e); + } finally { + Closeables.closeQuietly(writer); + } + } + + public void exportTemporaryGearExample(File file) throws IOException { + List<Gear> toExport = Lists.newArrayList(); + + Gear g; + + g = new Gear(); + g.setName("Gear name 1"); + g.setLabel("Gear label 1"); + toExport.add(g); + + g = new Gear(); + g.setName("Gear name 2"); + g.setLabel("Gear label 2"); + toExport.add(g); + + g = new Gear(); + g.setName("Gear name 3"); + g.setLabel("Gear label 3"); + toExport.add(g); + + GearModel csvModel = new GearModel(getCsvSeparator()); + + BufferedWriter writer = Files.newWriter(file, Charsets.UTF_8); + try { + Export export = Export.newExport(csvModel, toExport); + export.write(writer); + writer.close(); + } catch (IOException e) { + throw e; + } catch (Exception e) { + throw new TuttiServiceTechnicalException("Could not export species to file: " + file, e); + } finally { + Closeables.closeQuietly(writer); + } + } + + protected char getCsvSeparator() { + return context.getConfig().getCsvSeparator(); + } +} Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java (rev 0) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java 2013-02-07 08:26:42 UTC (rev 355) @@ -0,0 +1,60 @@ +package fr.ifremer.tutti.service.referential; + +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.service.TuttiCsvUtil; +import org.nuiton.util.csv.Common; + +/** + * Model to import / export {@link Vessel} in csv format. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class VesselModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Vessel> { + + public VesselModel(char separator) { + super(separator); + + // import definition + + newMandatoryColumn(Vessel.PROPERTY_NAME); + newMandatoryColumn(Vessel.PROPERTY_INTERNAL_REGISTRATION_CODE); + newMandatoryColumn(Vessel.PROPERTY_SCIENTIFIC_VESSEL, Common.PRIMITIVE_BOOLEAN); + + // export definition + + newColumnForExport(Vessel.PROPERTY_NAME); + newColumnForExport(Vessel.PROPERTY_INTERNAL_REGISTRATION_CODE); + newColumnForExport(Vessel.PROPERTY_SCIENTIFIC_VESSEL, Common.PRIMITIVE_BOOLEAN); + } + + @Override + public Vessel newEmptyInstance() { + return new Vessel(); + } + +} Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java 2013-02-07 08:26:42 UTC (rev 355) @@ -28,12 +28,11 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.io.Files; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.SystemUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; @@ -122,9 +121,9 @@ @Before public void setUp() throws Exception { - datadirectory = getTestSpecificDirectory(getClass(), - name.getMethodName(), - null); + datadirectory = TuttiEntities.getTestSpecificDirectory(getClass(), + name.getMethodName(), + null, TIMESTAMP); service = new TuttiProtocolImportExportService() { @@ -397,34 +396,6 @@ Assert.assertEquals(PROTOCOL_SPECIES_FILE_CONTENT, exportFileToString); } - public static File getTestSpecificDirectory(Class<?> testClassName, - String methodName, - String classifier) { - // Trying to look for the temporary folder to store data for the test - String tempDirPath = System.getProperty("java.io.tmpdir"); - if (tempDirPath == null) { - // can this really occur ? - tempDirPath = ""; - if (log.isWarnEnabled()) { - log.warn("'\"java.io.tmpdir\" not defined"); - } - } - File tempDirFile = SystemUtils.getJavaIoTmpDir(); - - // create the directory to store database data - String dataBasePath = testClassName.getName() - + File.separator // a directory with the test class name - + methodName; // a sub-directory with the method name - - if (StringUtils.isNotBlank(classifier)) { - dataBasePath += classifier; - } - dataBasePath += '_' - + TIMESTAMP; // and a timestamp - File databaseFile = new File(tempDirFile, dataBasePath); - return databaseFile; - } - protected Map<String, Caracteristic> createCaracteristics() { Map<String, Caracteristic> result = Maps.newTreeMap(); for (int i = 1; i < 6; i++) { Added: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportServiceTest.java (rev 0) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportServiceTest.java 2013-02-07 08:26:42 UTC (rev 355) @@ -0,0 +1,343 @@ +package fr.ifremer.tutti.service.referential; + +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.base.Charsets; +import com.google.common.collect.Lists; +import com.google.common.io.Files; +import fr.ifremer.tutti.persistence.RessourceClassLoader; +import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfigOption; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.TuttiServiceContext; +import fr.ifremer.tutti.service.config.TuttiServiceConfig; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestName; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; + +import java.io.File; +import java.util.List; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class TuttiReferentialImportExportServiceTest { + + public static final long TIMESTAMP = System.nanoTime(); + + @Rule + public final TestName name = new TestName(); + + protected File datadirectory; + + protected TuttiReferentialImportExportService service; + + private ClassLoader oldClassLoader; + + public static final String SPECIES_FILE_CONTENT = + "name\n" + + "Temporary Species name 1;\n" + + "Temporary Species name 2;\n" + + "Temporary Species name 3;"; + + public static final String GEAR_FILE_CONTENT = + "name;label\n" + + "Gear name 1;Gear label 1;\n" + + "Gear name 2;Gear label 2;\n" + + "Gear name 3;Gear label 3;"; + + public static final String PERSON_FILE_CONTENT = + "firstName;lastName\n" + + "First name 1;Last name 1;\n" + + "First name 2;Last name 2;\n" + + "First name 3;Last name 3;"; + + public static final String VESSEL_FILE_CONTENT = + "name;internalRegistrationCode;scientificVessel\n" + + "Temporary fishing vessel name 1;International registration code F1;N;\n" + + "Temporary fishing vessel name 2;International registration code F2;N;\n" + + "Temporary scientific vessel name 3;International registration code S3;Y;\n" + + "Temporary scientific vessel name 4;International registration code S4;Y;"; + + @Test + public void importTemporarySpecies() throws Exception { + + File file = new File(datadirectory, "importSpecies.csv"); + + Files.createParentDirs(file); + + Files.write(SPECIES_FILE_CONTENT, file, Charsets.UTF_8); + + List<Species> result = service.importTemporarySpecies(file); + + Assert.assertNotNull(result); + Assert.assertEquals(3, result.size()); + for (int i = 1; i <= 3; i++) { + Species actual = result.get(i - 1); + Assert.assertNotNull(actual); + Assert.assertEquals("" + i, actual.getId()); + Assert.assertEquals("Temporary Species name " + i, actual.getName()); + } + } + + @Test + public void importTemporaryVessel() throws Exception { + File file = new File(datadirectory, "importVessel.csv"); + + Files.createParentDirs(file); + + Files.write(VESSEL_FILE_CONTENT, file, Charsets.UTF_8); + + List<Vessel> result = service.importTemporaryVessel(file); + + Assert.assertNotNull(result); + Assert.assertEquals(4, result.size()); + for (int i = 1; i <= 2; i++) { + Vessel actual = result.get(i - 1); + Assert.assertNotNull(actual); + Assert.assertEquals("" + i, actual.getId()); + Assert.assertEquals("Temporary fishing vessel name " + i, actual.getName()); + Assert.assertEquals("International registration code F" + i, actual.getInternalRegistrationCode()); + Assert.assertFalse(actual.isScientificVessel()); + } + for (int i = 3; i <= 4; i++) { + Vessel actual = result.get(i - 1); + Assert.assertNotNull(actual); + Assert.assertEquals("" + i, actual.getId()); + Assert.assertEquals("Temporary scientific vessel name " + i, actual.getName()); + Assert.assertEquals("International registration code S" + i, actual.getInternalRegistrationCode()); + Assert.assertTrue(actual.isScientificVessel()); + } + } + + @Test + public void importTemporaryPerson() throws Exception { + File file = new File(datadirectory, "importPerson.csv"); + + Files.createParentDirs(file); + + Files.write(PERSON_FILE_CONTENT, file, Charsets.UTF_8); + + List<Person> result = service.importTemporaryPerson(file); + + Assert.assertNotNull(result); + Assert.assertEquals(3, result.size()); + for (int i = 1; i <= 3; i++) { + Person actual = result.get(i - 1); + Assert.assertNotNull(actual); + Assert.assertEquals("" + i, actual.getId()); + Assert.assertEquals("First name " + i, actual.getFirstName()); + Assert.assertEquals("Last name " + i, actual.getLastName()); + } + } + + @Test + public void importTemporaryGear() throws Exception { + File file = new File(datadirectory, "importGear.csv"); + + Files.createParentDirs(file); + + Files.write(GEAR_FILE_CONTENT, file, Charsets.UTF_8); + + List<Gear> result = service.importTemporaryGear(file); + + Assert.assertNotNull(result); + Assert.assertEquals(3, result.size()); + for (int i = 1; i <= 3; i++) { + Gear actual = result.get(i - 1); + Assert.assertNotNull(actual); + Assert.assertEquals("" + i, actual.getId()); + Assert.assertEquals("Gear name " + i, actual.getName()); + Assert.assertEquals("Gear label " + i, actual.getLabel()); + } + } + + @Test + public void exportTemporarySpeciesExample() throws Exception { + + File file = new File(datadirectory, "importSpecies.csv"); + + Assert.assertFalse(file.exists()); + service.exportTemporarySpeciesExample(file); + Assert.assertTrue(file.exists()); + + String exportFileToString = Files.toString(file, Charsets.UTF_8).trim(); + Assert.assertEquals(SPECIES_FILE_CONTENT, exportFileToString); + } + + @Test + public void exportTemporaryVesselExample() throws Exception { + File file = new File(datadirectory, "importVessel.csv"); + + Assert.assertFalse(file.exists()); + service.exportTemporaryVesselExample(file); + Assert.assertTrue(file.exists()); + + String exportFileToString = Files.toString(file, Charsets.UTF_8).trim(); + Assert.assertEquals(VESSEL_FILE_CONTENT, exportFileToString); + } + + @Test + public void exportTemporaryPersonExample() throws Exception { + File file = new File(datadirectory, "importPerson.csv"); + + Assert.assertFalse(file.exists()); + service.exportTemporaryPersonExample(file); + Assert.assertTrue(file.exists()); + + String exportFileToString = Files.toString(file, Charsets.UTF_8).trim(); + Assert.assertEquals(PERSON_FILE_CONTENT, exportFileToString); + } + + @Test + public void exportTemporaryGearExample() throws Exception { + File file = new File(datadirectory, "importGear.csv"); + + Assert.assertFalse(file.exists()); + service.exportTemporaryGearExample(file); + Assert.assertTrue(file.exists()); + + String exportFileToString = Files.toString(file, Charsets.UTF_8).trim(); + Assert.assertEquals(GEAR_FILE_CONTENT, exportFileToString); + } + + @Before + public void setUp() throws Exception { + datadirectory = TuttiEntities.getTestSpecificDirectory(getClass(), + name.getMethodName(), + null, TIMESTAMP); + + ApplicationConfig applicationConfig = + new ApplicationConfig("tutti-test.properties"); + applicationConfig.loadDefaultOptions( + TuttiPersistenceConfigOption.values()); + applicationConfig.setDefaultOption("tutti.data.directory", + new File(datadirectory, "data").getAbsolutePath()); + applicationConfig.parse(); + + RessourceClassLoader loader = + new RessourceClassLoader(getClass().getClassLoader()); + + oldClassLoader = Thread.currentThread().getContextClassLoader(); + Thread.currentThread().setContextClassLoader(loader); + + TuttiServiceConfig config = + new TuttiServiceConfig(applicationConfig); + + TuttiServiceContext serviceContext = + new TuttiServiceContext(loader, config); + + service = new TuttiReferentialImportExportService() { + + @Override + protected char getCsvSeparator() { + return ';'; + } + + @Override + public void setServiceContext(TuttiServiceContext context) { + this.context = context; + persistenceService = new PersistenceService() { + @Override + public List<Species> importTemporarySpecies(List<Species> species) { + Binder<Species, Species> binder = BinderFactory.newBinder(Species.class); + List<Species> result = Lists.newArrayList(); + int i = 1; + for (Species source : species) { + Species target = new Species(); + binder.copy(source, target); + target.setId("" + i++); + result.add(target); + } + return result; + } + + @Override + public List<Vessel> importTemporaryVessel(List<Vessel> vessels) { + Binder<Vessel, Vessel> binder = BinderFactory.newBinder(Vessel.class); + List<Vessel> result = Lists.newArrayList(); + int i = 1; + for (Vessel source : vessels) { + Vessel target = new Vessel(); + binder.copy(source, target); + target.setId("" + i++); + result.add(target); + } + return result; + } + + @Override + public List<Person> importTemporaryPerson(List<Person> persons) { + Binder<Person, Person> binder = BinderFactory.newBinder(Person.class); + List<Person> result = Lists.newArrayList(); + int i = 1; + for (Person source : persons) { + Person target = new Person(); + binder.copy(source, target); + target.setId("" + i++); + result.add(target); + } + return result; + } + + @Override + public List<Gear> importTemporaryGear(List<Gear> gears) { + Binder<Gear, Gear> binder = BinderFactory.newBinder(Gear.class); + List<Gear> result = Lists.newArrayList(); + int i = 1; + for (Gear source : gears) { + Gear target = new Gear(); + binder.copy(source, target); + target.setId("" + i++); + result.add(target); + } + return result; + } + }; + persistenceService.setServiceContext(context); + } + }; + service.setServiceContext(serviceContext); + } + + @After + public void tearDown() throws Exception { + // push back old classLoader + if (oldClassLoader != null) { + Thread.currentThread().setContextClassLoader(oldClassLoader); + } + } +} Property changes on: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportServiceTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-02-07 08:26:42 UTC (rev 355) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; @@ -93,7 +94,9 @@ "referential to file: " + file); } - getHandler().persistenceService.exportTemporaryGearExample(file); + TuttiReferentialImportExportService service = + getContext().getService(TuttiReferentialImportExportService.class); + service.exportTemporaryGearExample(file); sendMessage("Exemple de référentiel temporaire d'engins exporté " + "dans le fichier " + file + "."); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-02-07 08:26:42 UTC (rev 355) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; @@ -93,8 +94,11 @@ "referential to file: " + file); } - getHandler().persistenceService.exportTemporaryPersonExample(file); + TuttiReferentialImportExportService service = + getContext().getService(TuttiReferentialImportExportService.class); + service.exportTemporaryPersonExample(file); + sendMessage("Exemple de référentiel temporaire de personnes exporté " + "dans le fichier " + file + "."); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-02-07 08:26:42 UTC (rev 355) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; @@ -93,8 +94,11 @@ "referential to file: " + file); } - getHandler().persistenceService.exportTemporarySpeciesExample(file); + TuttiReferentialImportExportService service = + getContext().getService(TuttiReferentialImportExportService.class); + service.exportTemporarySpeciesExample(file); + sendMessage("Exemple de référentiel temporaire d'espèces exporté " + "dans le fichier " + file + "."); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-02-07 08:26:42 UTC (rev 355) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; @@ -93,8 +94,11 @@ "referential to file: " + file); } - getHandler().persistenceService.exportTemporaryVesselExample(file); + TuttiReferentialImportExportService service = + getContext().getService(TuttiReferentialImportExportService.class); + service.exportTemporaryVesselExample(file); + sendMessage("Exemple de référentiel temporaire de navires exporté " + "dans le fichier " + file + "."); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java 2013-02-07 08:26:42 UTC (rev 355) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; @@ -93,8 +94,11 @@ "referential from file: " + file); } - getHandler().persistenceService.importTemporaryGear(file); + TuttiReferentialImportExportService service = + getContext().getService(TuttiReferentialImportExportService.class); + service.importTemporaryGear(file); + sendMessage("Référentiel temporaire d'engins importé depuis le " + "fichier " + file + "."); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java 2013-02-07 08:26:42 UTC (rev 355) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; @@ -93,8 +94,11 @@ "referential from file: " + file); } - getHandler().persistenceService.importTemporaryPerson(file); + TuttiReferentialImportExportService service = + getContext().getService(TuttiReferentialImportExportService.class); + service.importTemporaryPerson(file); + sendMessage("Référentiel temporaire de personnes importé depuis le " + "fichier " + file + "."); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java 2013-02-07 08:26:42 UTC (rev 355) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; @@ -93,8 +94,11 @@ "referential from file: " + file); } - getHandler().persistenceService.importTemporarySpecies(file); + TuttiReferentialImportExportService service = + getContext().getService(TuttiReferentialImportExportService.class); + service.importTemporarySpecies(file); + sendMessage("Référentiel temporaire d'espèces importé depuis le " + "fichier " + file + "."); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java 2013-02-07 06:58:15 UTC (rev 354) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java 2013-02-07 08:26:42 UTC (rev 355) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; @@ -93,8 +94,11 @@ "referential from file: " + file); } - getHandler().persistenceService.importTemporaryVessel(file); + TuttiReferentialImportExportService service = + getContext().getService(TuttiReferentialImportExportService.class); + service.importTemporaryVessel(file); + sendMessage("Référentiel temporaire de navires importé depuis le " + "fichier " + file + "."); }
participants (1)
-
tchemit@users.forge.codelutin.com