r283 - in trunk/echobase-services/src/main: java/fr/ifremer/echobase/services java/fr/ifremer/echobase/services/configurations resources/i18n
Author: tchemit Date: 2012-01-15 22:31:49 +0100 (Sun, 15 Jan 2012) New Revision: 283 Url: http://forge.codelutin.com/repositories/revision/echobase/283 Log: - continue import data definition - create also a default user:user (not admin) Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataCompleteImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataFromTransectImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticRegionDataImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesIndividualDataImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesReferenceImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataCompleteImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataFromTransectImportConfiguration.java trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java 2012-01-15 21:31:49 UTC (rev 283) @@ -26,7 +26,9 @@ import fr.ifremer.echobase.InputFile; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.services.configurations.AbstractImportConfiguration; +import org.nuiton.topia.TopiaException; +import java.io.IOException; import java.util.Map; /** @@ -37,5 +39,5 @@ */ public abstract class AbstractImportDataService<M extends AbstractImportConfiguration> extends EchoBaseServiceSupport { - public abstract Map<InputFile, CsvImportResult> startImport(M configuration, EchoBaseUser user); + public abstract Map<InputFile, CsvImportResult> startImport(M configuration, EchoBaseUser user) throws IOException, TopiaException; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataCompleteImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataCompleteImportService.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataCompleteImportService.java 2012-01-15 21:31:49 UTC (rev 283) @@ -24,13 +24,32 @@ package fr.ifremer.echobase.services; import com.google.common.collect.Maps; +import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.InputFile; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.data.VoyageImpl; +import fr.ifremer.echobase.entities.references.AreaOfOperation; import fr.ifremer.echobase.entities.references.Mission; +import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.services.configurations.CommonDataCompleteImportConfiguration; +import fr.ifremer.echobase.services.csv.CsvModelUtil; +import org.apache.commons.collections.CollectionUtils; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.util.csv.Import; +import org.nuiton.util.csv.ImportModel; +import org.nuiton.util.csv.ImportToMap; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.Reader; +import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -42,11 +61,44 @@ public class CommonDataCompleteImportService extends AbstractImportDataService<CommonDataCompleteImportConfiguration> { @Override - public Map<InputFile, CsvImportResult> startImport(CommonDataCompleteImportConfiguration configuration, EchoBaseUser user) { + public Map<InputFile, CsvImportResult> startImport(CommonDataCompleteImportConfiguration configuration, + EchoBaseUser user) throws IOException, TopiaException { + Map<InputFile, CsvImportResult> result = Maps.newHashMap(); + char csvSeparator = serviceContext.getConfiguration().getCsvSeparator(); - importCasinoFile(configuration.getCasinoFile(), csvSeparator); + Mission mission = getEntityById(Mission.class, configuration.getMissionId()); + AreaOfOperation areaOfOperation = getEntityById(AreaOfOperation.class, configuration.getAreaOfOperationId()); + Vessel vessel = getEntityById(Vessel.class, configuration.getVesselId()); + + importVoyageFile(configuration.getVoyageFile(), + mission, + areaOfOperation, + configuration.getVoyageDescription(), + configuration.getDatum(), + csvSeparator); + + List<Voyage> allVoyages = getEntities(Voyage.class); + Map<String, Voyage> voyageMap = Maps.uniqueIndex( + allVoyages, EchoBaseFunctions.VOYAGE_NAME); + + importTransitFile(configuration.getTransitFile(), + voyageMap, + configuration.getTransitRelatedActivity(), + csvSeparator); + + importTransectFile(configuration.getTransectFile(), + vessel, + voyageMap, + configuration.getDatum(), + configuration.getTransectLicence(), + configuration.getTransectGeospatialVerticalPositive(), + configuration.getTransectBinUnitsPingAxis(), + csvSeparator); + importEchotypeFile(configuration.getEchotypeFile(), csvSeparator); + + commitTransaction("Could not commit transaction of common data import"); return result; } @@ -61,10 +113,224 @@ } } - private void importCasinoFile(InputFile casinoFile, char csvSeparator) { + protected void importVoyageFile(InputFile inputFile, + Mission mission, + AreaOfOperation areaOfOperation, + String voyageDescription, + String datum, + char csvSeparator) throws IOException, TopiaException { + + + ImportModel<Voyage> csvModel = new VoyageImportModel(csvSeparator); + + TopiaDAO<Voyage> dao = getDAO(Voyage.class); + Reader reader = new BufferedReader(new FileReader(inputFile.getFile())); + try { + Import<Voyage> importer = Import.newImport(csvModel, reader); + for (Voyage voyage : importer) { + voyage.setMission(mission); + voyage.setAreaOfOperation(areaOfOperation); + voyage.setDescription(voyageDescription); + voyage.setDatum(datum); + dao.create(voyage); + } + + } finally { + reader.close(); + } } - private void importEchotypeFile(InputFile echotypeFile, char csvSeparator) { + protected void importTransitFile(InputFile inputFile, + Map<String, Voyage> voyageMap, + String relatedActivity, + char csvSeparator) throws TopiaException, IOException { + TransitImportModel csvModel = new TransitImportModel(csvSeparator, voyageMap); + TopiaDAO<Transit> dao = getDAO(Transit.class); + + Reader reader = new BufferedReader(new FileReader(inputFile.getFile())); + try { + ImportToMap importer = ImportToMap.newImport(csvModel, reader); + for (Map<String, Object> row : importer) { + + Voyage voyage = (Voyage) row.get(TransitImportModel.TRANSIT_VoyageId); + + Transit transit = dao.create(); + + transit.setDescription((String) row.get(Transit.PROPERTY_DESCRIPTION)); + transit.setStartLocality((String) row.get(Transit.PROPERTY_START_LOCALITY)); + transit.setEndLocality((String) row.get(Transit.PROPERTY_END_LOCALITY)); + + transit.setStartTime((Date) row.get(Transit.PROPERTY_START_TIME)); + transit.setEndTime((Date) row.get(Transit.PROPERTY_END_TIME)); + transit.setRelatedActivity(relatedActivity); + voyage.addTransit(transit); + } + + } finally { + reader.close(); + } } + + private void importTransectFile(InputFile inputFile, + Vessel vessel, + Map<String, Voyage> voyageMap, + String datum, + String license, + String geospatialVerticalPositive, + String binUnitsPingAxis, + char csvSeparator + ) throws TopiaException, IOException { + + TransectImportModel csvModel = new TransectImportModel(csvSeparator, voyageMap); + + TopiaDAO<Transect> dao = getDAO(Transect.class); + + /* + modelBuilder.newMandatoryColumn(TRANSECT_stratum, TRANSECT_stratum); + modelBuilder.newMandatoryColumn(TRANSECT_datef, TRANSECT_datef, CsvModelUtil.DAY); + modelBuilder.newMandatoryColumn(TRANSECT_heuref, TRANSECT_heuref, CsvModelUtil.TIME); + */ + Reader reader = new BufferedReader(new FileReader(inputFile.getFile())); + try { + ImportToMap importer = ImportToMap.newImport(csvModel, reader); + for (Map<String, Object> row : importer) { + + Voyage voyage = (Voyage) row.get(TransectImportModel.TRANSECT_VoyageID); + + Transect transect = dao.create( + Transect.PROPERTY_VESSEL, vessel + ); + + transect.setTitle((String) row.get(Transect.PROPERTY_TITLE)); + transect.setTransectAbstract((String) row.get(Transect.PROPERTY_TRANSECT_ABSTRACT)); + transect.setComment((String) row.get(Transect.PROPERTY_COMMENT)); + + transect.setDatum(datum); + transect.setLicence(license); + transect.setGeospatialVerticalPositive(geospatialVerticalPositive); + transect.setBinUnitsPingAxis(binUnitsPingAxis); + + transect.setDateCreated((Date) row.get(Transect.PROPERTY_DATE_CREATED)); + transect.setTimeCoverageStart((Date) row.get(Transect.PROPERTY_TIME_COVERAGE_START)); + transect.setTimeCoverageEnd((Date) row.get(Transect.PROPERTY_TIME_COVERAGE_END)); + + + transect.setGeospatialLatMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LAT_MIN)); + transect.setGeospatialLonMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LON_MIN)); + transect.setGeospatialVerticalMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN)); + + transect.setGeospatialLatMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LAT_MAX)); + transect.setGeospatialLonMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LON_MAX)); + transect.setGeospatialVerticalMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX)); + + // find out the transit where to reattach the transect + List<Transit> transits = voyage.getTransit(); + + Transit transit = null; + + if (CollectionUtils.isNotEmpty(transits)) { + for (Transit aTransit : transits) { + transit = aTransit; + break; + } + } + if (transit == null) { + throw new EchoBaseTechnicalException( + "Could not find transit to reattach transect " + + transect.getTitle()); + } + + transit.addTransect(transect); + } + + } finally { + reader.close(); + } + } + + private void importEchotypeFile(InputFile inputFile, char csvSeparator) { + + } + + protected static class VoyageImportModel extends CsvModelUtil.AbstractImportModel<Voyage> { + + public VoyageImportModel(char separator) { + super(separator); + modelBuilder.newMandatoryColumn("VoyageName", Voyage.PROPERTY_NAME); + modelBuilder.newMandatoryColumn("VoyageStartDate", Voyage.PROPERTY_START_DATE, CsvModelUtil.DAY); + modelBuilder.newMandatoryColumn("VoyageEndDate", Voyage.PROPERTY_END_DATE, CsvModelUtil.DAY); + modelBuilder.newMandatoryColumn("StartPort", Voyage.PROPERTY_START_PORT); + modelBuilder.newMandatoryColumn("EndPort", Voyage.PROPERTY_END_PORT); + } + + @Override + public Voyage newEmptyInstance() { + return new VoyageImpl(); + } + } + + protected static class TransitImportModel extends CsvModelUtil.AbstractImportModel<Map<String, Object>> { + + public static final String TRANSIT_VoyageId = "VoyageId"; + + protected final Map<String, Voyage> voyageMap; + + public TransitImportModel(char separator, + Map<String, Voyage> voyageMap) { + super(separator); + this.voyageMap = voyageMap; + modelBuilder.newMandatoryColumn(TRANSIT_VoyageId, TRANSIT_VoyageId, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap)); + modelBuilder.newMandatoryColumn("TransitName", Transit.PROPERTY_DESCRIPTION); + modelBuilder.newMandatoryColumn("StartTime", Transit.PROPERTY_START_TIME, CsvModelUtil.DAY_TIME); + modelBuilder.newMandatoryColumn("EndTime", Transit.PROPERTY_END_TIME, CsvModelUtil.DAY_TIME); + modelBuilder.newMandatoryColumn("StartLocality", Transit.PROPERTY_START_LOCALITY); + modelBuilder.newMandatoryColumn("EndLocality", Transit.PROPERTY_END_LOCALITY); + } + + @Override + public Map<String, Object> newEmptyInstance() { + return null; + } + } + + protected static class TransectImportModel extends CsvModelUtil.AbstractImportModel<Map<String, Object>> { + + public static final String TRANSECT_stratum = "stratum"; + public static final String TRANSECT_VoyageID = "VoyageID"; + public static final String TRANSECT_datef = "datef"; + public static final String TRANSECT_heuref = "heuref"; + + protected final Map<String, Voyage> voyageMap; + + public TransectImportModel(char separator, + Map<String, Voyage> voyageMap) { + super(separator); + this.voyageMap = voyageMap; + + modelBuilder.newMandatoryColumn("Title", Transect.PROPERTY_TITLE); + modelBuilder.newMandatoryColumn("abstract", Transect.PROPERTY_TRANSECT_ABSTRACT); + modelBuilder.newMandatoryColumn(TRANSECT_stratum, TRANSECT_stratum); + modelBuilder.newMandatoryColumn("comment", Transect.PROPERTY_COMMENT); + modelBuilder.newMandatoryColumn(TRANSECT_VoyageID, TRANSECT_VoyageID, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap)); + modelBuilder.newMandatoryColumn(TRANSECT_datef, TRANSECT_datef, CsvModelUtil.DAY); + modelBuilder.newMandatoryColumn(TRANSECT_heuref, TRANSECT_heuref, CsvModelUtil.TIME); + + modelBuilder.newMandatoryColumn("DateCreated", Transect.PROPERTY_DATE_CREATED, CsvModelUtil.IMPORT_DAY2); + modelBuilder.newMandatoryColumn("TimeCoverageStart", Transect.PROPERTY_TIME_COVERAGE_START, CsvModelUtil.TIME); + modelBuilder.newMandatoryColumn("TimeCoverageEnd", Transect.PROPERTY_TIME_COVERAGE_END, CsvModelUtil.TIME); + modelBuilder.newMandatoryColumn("GeospatialLonMin", Transect.PROPERTY_GEOSPATIAL_LON_MIN, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialLatMin", Transect.PROPERTY_GEOSPATIAL_LAT_MIN, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialVerticalMin", Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialLonMax", Transect.PROPERTY_GEOSPATIAL_LON_MAX, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialLatMax", Transect.PROPERTY_GEOSPATIAL_LAT_MAX, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialVerticalMax", Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX, CsvModelUtil.PRIMITIVE_FLOAT); + } + + @Override + public Map<String, Object> newEmptyInstance() { + return null; + } + + } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataFromTransectImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataFromTransectImportService.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataFromTransectImportService.java 2012-01-15 21:31:49 UTC (rev 283) @@ -24,10 +24,26 @@ package fr.ifremer.echobase.services; import com.google.common.collect.Maps; +import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.InputFile; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.services.configurations.CommonDataFromTransectImportConfiguration; +import fr.ifremer.echobase.services.csv.CsvModelUtil; +import org.apache.commons.collections.CollectionUtils; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.util.csv.ImportToMap; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.Reader; +import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -39,15 +55,133 @@ public class CommonDataFromTransectImportService extends AbstractImportDataService<CommonDataFromTransectImportConfiguration> { @Override - public Map<InputFile, CsvImportResult> startImport(CommonDataFromTransectImportConfiguration configuration, EchoBaseUser user) { + public Map<InputFile, CsvImportResult> startImport(CommonDataFromTransectImportConfiguration configuration, + EchoBaseUser user) throws IOException, TopiaException { Map<InputFile, CsvImportResult> result = Maps.newHashMap(); char csvSeparator = serviceContext.getConfiguration().getCsvSeparator(); - importCasinoFile(configuration.getCasinoFile(), csvSeparator); + Voyage voyage = getEntityById(Voyage.class, configuration.getVoyageId()); + Vessel vessel = getEntityById(Vessel.class, configuration.getVesselId()); + + importTransectFile(configuration.getTransectFile(), + voyage, + vessel, + configuration.getDatum(), + configuration.getTransectLicence(), + configuration.getTransectGeospatialVerticalPositive(), + configuration.getTransectBinUnitsPingAxis(), + csvSeparator); return result; } - protected void importCasinoFile(InputFile inputFile, char csvSeparator) { + private void importTransectFile(InputFile inputFile, + Voyage voyage, + Vessel vessel, + String datum, + String license, + String geospatialVerticalPositive, + String binUnitsPingAxis, + char csvSeparator + ) throws TopiaException, IOException { + TransectImportModel csvModel = new TransectImportModel(csvSeparator); + + TopiaDAO<Transect> dao = getDAO(Transect.class); + + /* + modelBuilder.newMandatoryColumn(TRANSECT_stratum, TRANSECT_stratum); + modelBuilder.newMandatoryColumn(TRANSECT_datef, TRANSECT_datef, CsvModelUtil.DAY); + modelBuilder.newMandatoryColumn(TRANSECT_heuref, TRANSECT_heuref, CsvModelUtil.TIME); + */ + Reader reader = new BufferedReader(new FileReader(inputFile.getFile())); + try { + ImportToMap importer = ImportToMap.newImport(csvModel, reader); + for (Map<String, Object> row : importer) { + + + Transect transect = dao.create( + Transect.PROPERTY_VESSEL, vessel + ); + + transect.setTitle((String) row.get(Transect.PROPERTY_TITLE)); + transect.setTransectAbstract((String) row.get(Transect.PROPERTY_TRANSECT_ABSTRACT)); + transect.setComment((String) row.get(Transect.PROPERTY_COMMENT)); + + transect.setDatum(datum); + transect.setLicence(license); + transect.setGeospatialVerticalPositive(geospatialVerticalPositive); + transect.setBinUnitsPingAxis(binUnitsPingAxis); + + transect.setDateCreated((Date) row.get(Transect.PROPERTY_DATE_CREATED)); + transect.setTimeCoverageStart((Date) row.get(Transect.PROPERTY_TIME_COVERAGE_START)); + transect.setTimeCoverageEnd((Date) row.get(Transect.PROPERTY_TIME_COVERAGE_END)); + + + transect.setGeospatialLatMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LAT_MIN)); + transect.setGeospatialLonMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LON_MIN)); + transect.setGeospatialVerticalMin((Float) row.get(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN)); + + transect.setGeospatialLatMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LAT_MAX)); + transect.setGeospatialLonMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_LON_MAX)); + transect.setGeospatialVerticalMax((Float) row.get(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX)); + + // find out the transit where to reattach the transect + List<Transit> transits = voyage.getTransit(); + + Transit transit = null; + + if (CollectionUtils.isNotEmpty(transits)) { + for (Transit aTransit : transits) { + transit = aTransit; + break; + } + } + if (transit == null) { + throw new EchoBaseTechnicalException( + "Could not find transit to reattach transect " + + transect.getTitle()); + } + + transit.addTransect(transect); + } + + } finally { + reader.close(); + } } + + protected static class TransectImportModel extends CsvModelUtil.AbstractImportModel<Map<String, Object>> { + + public static final String TRANSECT_stratum = "stratum"; + public static final String TRANSECT_VoyageID = "VoyageID"; + public static final String TRANSECT_datef = "datef"; + public static final String TRANSECT_heuref = "heuref"; + + public TransectImportModel(char separator) { + super(separator); + + modelBuilder.newMandatoryColumn("Title", Transect.PROPERTY_TITLE); + modelBuilder.newMandatoryColumn("abstract", Transect.PROPERTY_TRANSECT_ABSTRACT); + modelBuilder.newMandatoryColumn(TRANSECT_stratum, TRANSECT_stratum); + modelBuilder.newMandatoryColumn("comment", Transect.PROPERTY_COMMENT); + modelBuilder.newMandatoryColumn(TRANSECT_datef, TRANSECT_datef, CsvModelUtil.DAY); + modelBuilder.newMandatoryColumn(TRANSECT_heuref, TRANSECT_heuref, CsvModelUtil.TIME); + + modelBuilder.newMandatoryColumn("DateCreated", Transect.PROPERTY_DATE_CREATED, CsvModelUtil.IMPORT_DAY2); + modelBuilder.newMandatoryColumn("TimeCoverageStart", Transect.PROPERTY_TIME_COVERAGE_START, CsvModelUtil.TIME); + modelBuilder.newMandatoryColumn("TimeCoverageEnd", Transect.PROPERTY_TIME_COVERAGE_END, CsvModelUtil.TIME); + modelBuilder.newMandatoryColumn("GeospatialLonMin", Transect.PROPERTY_GEOSPATIAL_LON_MIN, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialLatMin", Transect.PROPERTY_GEOSPATIAL_LAT_MIN, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialVerticalMin", Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialLonMax", Transect.PROPERTY_GEOSPATIAL_LON_MAX, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialLatMax", Transect.PROPERTY_GEOSPATIAL_LAT_MAX, CsvModelUtil.PRIMITIVE_FLOAT); + modelBuilder.newMandatoryColumn("GeospatialVerticalMax", Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX, CsvModelUtil.PRIMITIVE_FLOAT); + } + + @Override + public Map<String, Object> newEmptyInstance() { + return null; + } + + } } 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-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-01-15 21:31:49 UTC (rev 283) @@ -195,7 +195,7 @@ newServiceContext.newService(UserService.class); // create admin user - userService.createDefaultAdminUser(); + userService.createDefaultUsers(); // get admin from h2 db EchoBaseUser admin = userService.getUserByEmail( 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-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2012-01-15 21:31:49 UTC (rev 283) @@ -24,7 +24,6 @@ package fr.ifremer.echobase.services; import com.google.common.base.Preconditions; -import fr.ifremer.echobase.EchoBaseConfiguration; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserDAO; @@ -47,6 +46,10 @@ public static final String DEFAULT_ADMIN_PASSWORD = "admin"; + public static final String DEFAULT_USER_EMAIL = "user"; + + public static final String DEFAULT_USER_PASSWORD = "user"; + public List<EchoBaseUser> getUsers() { return getUsers(null); } @@ -127,7 +130,7 @@ return s.equals(user.getPassword()); } - public void createDefaultAdminUser() { + public void createDefaultUsers() { EchoBaseUserDTO userDTO; userDTO = new EchoBaseUserDTOImpl(); userDTO.setEmail(DEFAULT_ADMIN_EMAIL); @@ -135,15 +138,11 @@ userDTO.setAdmin(true); createOrUpdate(userDTO); - if (getConfiguration().getOptionAsBoolean(EchoBaseConfiguration.OPTION_CREATE_ADMINS)) { - for (int i = 0; i < 1000; i++) { - userDTO = new EchoBaseUserDTOImpl(); - userDTO.setEmail(DEFAULT_ADMIN_EMAIL + i); - userDTO.setPassword(DEFAULT_ADMIN_PASSWORD); - userDTO.setAdmin(i % 2 == 0); - createOrUpdate(userDTO); - } - } + userDTO = new EchoBaseUserDTOImpl(); + userDTO.setEmail(DEFAULT_USER_EMAIL); + userDTO.setPassword(DEFAULT_USER_PASSWORD); + userDTO.setAdmin(false); + createOrUpdate(userDTO); } public static String encodePassword(String password) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java 2012-01-15 21:31:49 UTC (rev 283) @@ -45,12 +45,18 @@ /** Selected vessel id to find out transect where to import datas. */ protected String vesselId; - /** Manual field 1. */ - protected String field1; + /** Manual echosounderSoundSpeed. */ + protected String echosounderSoundSpeed = "Variable"; - /** Manual field 2. */ - protected String field2; + /** Manual soundSpeedCalculations. */ + protected String soundSpeedCalculations = "SVProbe"; + /** Manual pingDutyCycle. */ + protected String pingDutyCycle = "ME70Table"; + + /** Manual notes. */ + protected String notes; + /** Movies file to import. */ protected final InputFile moviesFile; @@ -74,22 +80,38 @@ this.vesselId = vesselId; } - public String getField1() { - return field1; + public String getEchosounderSoundSpeed() { + return echosounderSoundSpeed; } - public void setField1(String field1) { - this.field1 = field1; + public void setEchosounderSoundSpeed(String echosounderSoundSpeed) { + this.echosounderSoundSpeed = echosounderSoundSpeed; } - public String getField2() { - return field2; + public String getSoundSpeedCalculations() { + return soundSpeedCalculations; } - public void setField2(String field2) { - this.field2 = field2; + public void setSoundSpeedCalculations(String soundSpeedCalculations) { + this.soundSpeedCalculations = soundSpeedCalculations; } + public String getPingDutyCycle() { + return pingDutyCycle; + } + + public void setPingDutyCycle(String pingDutyCycle) { + this.pingDutyCycle = pingDutyCycle; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + public InputFile getMoviesFile() { return moviesFile; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticRegionDataImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticRegionDataImportConfiguration.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticRegionDataImportConfiguration.java 2012-01-15 21:31:49 UTC (rev 283) @@ -39,19 +39,12 @@ private static final long serialVersionUID = 1L; - /** Selected voyage id where to import datas. */ protected String voyageId; /** Selected vessel id to find out transect where to import datas. */ protected String vesselId; - /** Manual field 1. */ - protected String field1; - - /** Manual field 2. */ - protected String field2; - /** Region file to import. */ protected final InputFile regionsFile; @@ -59,8 +52,10 @@ protected final InputFile associationFile; public AccousticRegionDataImportConfiguration(Locale locale) { - regionsFile = InputFile.newFile(l_(locale, "echobase.common.regionsFile")); - associationFile = InputFile.newFile(l_(locale, "echobase.common.associationFile")); + regionsFile = InputFile.newFile( + l_(locale, "echobase.common.regionsFile")); + associationFile = InputFile.newFile( + l_(locale, "echobase.common.associationFile")); } public String getVoyageId() { @@ -79,22 +74,6 @@ this.vesselId = vesselId; } - public String getField1() { - return field1; - } - - public void setField1(String field1) { - this.field1 = field1; - } - - public String getField2() { - return field2; - } - - public void setField2(String field2) { - this.field2 = field2; - } - public InputFile getRegionsFile() { return regionsFile; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java 2012-01-15 21:31:49 UTC (rev 283) @@ -55,10 +55,14 @@ protected final InputFile tblMensurationClasseFile; public CatchesDataImportConfiguration(Locale locale) { - tlbeStationFile = InputFile.newFile(l_(locale, "echobase.common.tlbeStationFile")); - xtblTriFile = InputFile.newFile(l_(locale, "echobase.common.xtblTriFile")); - tblMensurationFile = InputFile.newFile(l_(locale, "echobase.common.tblMensurationFile")); - tblMensurationClasseFile = InputFile.newFile(l_(locale, "echobase.common.tblMensurationClasseFile")); + tlbeStationFile = InputFile.newFile( + l_(locale, "echobase.common.tlbeStationFile")); + xtblTriFile = InputFile.newFile( + l_(locale, "echobase.common.xtblTriFile")); + tblMensurationFile = InputFile.newFile( + l_(locale, "echobase.common.tblMensurationFile")); + tblMensurationClasseFile = InputFile.newFile( + l_(locale, "echobase.common.tblMensurationClasseFile")); } public String getVoyageId() { @@ -73,7 +77,6 @@ return tlbeStationFile; } - public InputFile getXtblTriFile() { return xtblTriFile; } @@ -88,6 +91,7 @@ @Override public InputFile[] getInputFiles() { - return new InputFile[]{tlbeStationFile, xtblTriFile, tblMensurationFile, tblMensurationClasseFile}; + return new InputFile[]{tlbeStationFile, xtblTriFile, + tblMensurationFile, tblMensurationClasseFile}; } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesIndividualDataImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesIndividualDataImportConfiguration.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesIndividualDataImportConfiguration.java 2012-01-15 21:31:49 UTC (rev 283) @@ -46,7 +46,8 @@ protected final InputFile individualDataFile; public CatchesIndividualDataImportConfiguration(Locale locale) { - individualDataFile = InputFile.newFile(l_(locale, "echobase.common.individualDataFile")); + individualDataFile = InputFile.newFile( + l_(locale, "echobase.common.individualDataFile")); } public String getVoyageId() { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesReferenceImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesReferenceImportConfiguration.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesReferenceImportConfiguration.java 2012-01-15 21:31:49 UTC (rev 283) @@ -46,8 +46,10 @@ protected final InputFile lengthWeightKeyFile; public CatchesReferenceImportConfiguration(Locale locale) { - lengthAgeKeyFile = InputFile.newFile(l_(locale, "echobase.common.lengthAgeKeyFile")); - lengthWeightKeyFile = InputFile.newFile(l_(locale, "echobase.common.lengthWeightKeyFile")); + lengthAgeKeyFile = InputFile.newFile( + l_(locale, "echobase.common.lengthAgeKeyFile")); + lengthWeightKeyFile = InputFile.newFile( + l_(locale, "echobase.common.lengthWeightKeyFile")); } public InputFile getLengthAgeKeyFile() { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataCompleteImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataCompleteImportConfiguration.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataCompleteImportConfiguration.java 2012-01-15 21:31:49 UTC (rev 283) @@ -45,21 +45,48 @@ /** Selected area of operation to use for voyage. */ protected String areaOfOperationId; + /** Selected vessel to use for transect. */ + protected String vesselId; + /** Manual description of voyage. */ protected String voyageDescription; + /** transit related activity. */ + protected String transitRelatedActivity; + + /** transect license. */ + protected String transectLicence; + + /** transect geospatialVerticalPositive. */ + protected String transectGeospatialVerticalPositive = "down"; + + /** transect binUnitsPingAxis. */ + protected String transectBinUnitsPingAxis = "1 nautical mile"; + /** Manual datum to use in voyage. */ protected String datum = "WGS84"; - /** Casino file to import. */ - protected final InputFile casinoFile; + /** Voyage file to import. */ + protected final InputFile voyageFile; + /** Transit file to import. */ + protected final InputFile transitFile; + + /** Transect file to import. */ + protected final InputFile transectFile; + /** Echotype file to import. */ protected final InputFile echotypeFile; public CommonDataCompleteImportConfiguration(Locale locale) { - casinoFile = InputFile.newFile(l_(locale, "echobase.common.casinoFile")); - echotypeFile = InputFile.newFile(l_(locale, "echobase.common.echotypeFile")); + voyageFile = InputFile.newFile( + l_(locale, "echobase.common.voyageFile")); + transitFile = InputFile.newFile( + l_(locale, "echobase.common.transitFile")); + transectFile = InputFile.newFile( + l_(locale, "echobase.common.transectFile")); + echotypeFile = InputFile.newFile( + l_(locale, "echobase.common.echotypeFile")); } public String getMissionId() { @@ -78,6 +105,14 @@ this.areaOfOperationId = areaOfOperationId; } + public String getVesselId() { + return vesselId; + } + + public void setVesselId(String vesselId) { + this.vesselId = vesselId; + } + public String getVoyageDescription() { return voyageDescription; } @@ -94,16 +129,57 @@ this.datum = datum; } - public InputFile getCasinoFile() { - return casinoFile; + public String getTransitRelatedActivity() { + return transitRelatedActivity; } + public void setTransitRelatedActivity(String transitRelatedActivity) { + this.transitRelatedActivity = transitRelatedActivity; + } + + public String getTransectLicence() { + return transectLicence; + } + + public void setTransectLicence(String transectLicence) { + this.transectLicence = transectLicence; + } + + public String getTransectGeospatialVerticalPositive() { + return transectGeospatialVerticalPositive; + } + + public void setTransectGeospatialVerticalPositive(String transectGeospatialVerticalPositive) { + this.transectGeospatialVerticalPositive = transectGeospatialVerticalPositive; + } + + public String getTransectBinUnitsPingAxis() { + return transectBinUnitsPingAxis; + } + + public void setTransectBinUnitsPingAxis(String transectBinUnitsPingAxis) { + this.transectBinUnitsPingAxis = transectBinUnitsPingAxis; + } + + public InputFile getVoyageFile() { + return voyageFile; + } + + public InputFile getTransitFile() { + return transitFile; + } + + public InputFile getTransectFile() { + return transectFile; + } + public InputFile getEchotypeFile() { return echotypeFile; } @Override public InputFile[] getInputFiles() { - return new InputFile[]{casinoFile, echotypeFile}; + return new InputFile[]{voyageFile, transitFile, + transectFile, echotypeFile}; } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataFromTransectImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataFromTransectImportConfiguration.java 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CommonDataFromTransectImportConfiguration.java 2012-01-15 21:31:49 UTC (rev 283) @@ -42,11 +42,27 @@ /** Selected voyage id where to import datas. */ protected String voyageId; - /** Casino file to import. */ - protected final InputFile casinoFile; + /** Selected vessel to use for transect. */ + protected String vesselId; + /** transect license. */ + protected String transectLicence; + + /** transect geospatialVerticalPositive. */ + protected String transectGeospatialVerticalPositive = "down"; + + /** transect binUnitsPingAxis. */ + protected String transectBinUnitsPingAxis = "1 nautical mile"; + + /** Manual datum to use in voyage. */ + protected String datum = "WGS84"; + + /** Transect file to import. */ + protected final InputFile transectFile; + public CommonDataFromTransectImportConfiguration(Locale locale) { - casinoFile = InputFile.newFile(l_(locale, "echobase.common.casinoFile")); + transectFile = InputFile.newFile( + l_(locale, "echobase.common.transectFile")); } public String getVoyageId() { @@ -57,12 +73,52 @@ this.voyageId = voyageId; } - public InputFile getCasinoFile() { - return casinoFile; + public String getVesselId() { + return vesselId; } + public void setVesselId(String vesselId) { + this.vesselId = vesselId; + } + + public String getDatum() { + return datum; + } + + public void setDatum(String datum) { + this.datum = datum; + } + + public String getTransectLicence() { + return transectLicence; + } + + public void setTransectLicence(String transectLicence) { + this.transectLicence = transectLicence; + } + + public String getTransectGeospatialVerticalPositive() { + return transectGeospatialVerticalPositive; + } + + public void setTransectGeospatialVerticalPositive(String transectGeospatialVerticalPositive) { + this.transectGeospatialVerticalPositive = transectGeospatialVerticalPositive; + } + + public String getTransectBinUnitsPingAxis() { + return transectBinUnitsPingAxis; + } + + public void setTransectBinUnitsPingAxis(String transectBinUnitsPingAxis) { + this.transectBinUnitsPingAxis = transectBinUnitsPingAxis; + } + + public InputFile getTransectFile() { + return transectFile; + } + @Override public InputFile[] getInputFiles() { - return new InputFile[]{casinoFile}; + return new InputFile[]{transectFile}; } } Modified: trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties =================================================================== --- trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties 2012-01-15 21:30:41 UTC (rev 282) +++ trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties 2012-01-15 21:31:49 UTC (rev 283) @@ -2,7 +2,7 @@ echobase.common.echotypeFile=Fichier echotype echobase.common.importDataMode.accousticData=Import des données accoustiques echobase.common.importDataMode.accousticRegionData=Import des cellules régions (accoustique) -echobase.common.importDataMode.catchesData=Import des donées de pêche non biométrie +echobase.common.importDataMode.catchesData=Import des données de pêche non biométrie echobase.common.importDataMode.catchesIndividualData=Import des données de pêche biométire echobase.common.importDataMode.catchesReferences=Import du référentiel pêche echobase.common.importDataMode.commonDataComplete=Import de données communes
participants (1)
-
tchemit@users.forge.codelutin.com