r665 - in trunk: sammoa-application sammoa-application/src/main/java/fr/ulr/sammoa/application sammoa-application/src/main/java/fr/ulr/sammoa/application/device sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController sammoa-application/src/main/java/fr/ulr/sammoa/application/io sammoa-application/src/main/java/fr/ulr/sammoa/applica
Author: athimel Date: 2014-05-16 10:16:53 +0200 (Fri, 16 May 2014) New Revision: 665 Url: http://forge.codelutin.com/projects/sammoa/repository/revisions/665 Log: Update version Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightTopiaDao.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPointTopiaDao.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationTopiaDao.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteTopiaDao.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateTopiaDao.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlightTopiaDao.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectTopiaDao.java Removed: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPointDAOImpl.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateDAOImpl.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectDAOImpl.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlightDAOImpl.java Modified: trunk/sammoa-application/pom.xml trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/DecoratorService.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaApplicationConfigProvider.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ValidationService.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/DeviceManagerProvider.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioConfig.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioReader.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioReaderMock.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GPSNRSerialDevice.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsConfig.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/BaseFlightController.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerOnBoard.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerValidation.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationService.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/SammoaImportModelFactory.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/AbstractImportStrategy.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/DataImportStrategy.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/ReferentialImportStrategy.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvService.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ObserverImportModel.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/SpeciesImportModel.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DbfImport.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DoubleToIntegerValueParser.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/StrateImportModel.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/StrateTypeValueParser.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/TransectImportModel.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/ExportApplicationService.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/SammoaPrepareDataForExport.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/SammoaConfigMock.java trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/SammoaDatabase.java trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java trunk/sammoa-application/src/test/resources/sammoa-test.properties trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/AutoSaveListener.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/HasTopiaIdPredicate.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/PersistenceException.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Position.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistenceHelper.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Validables.java trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/DataAutoSaveListenerTest.java trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDatabase.java trunk/sammoa-persistence/src/test/resources/sammoa-test.properties Modified: trunk/sammoa-application/pom.xml =================================================================== --- trunk/sammoa-application/pom.xml 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/pom.xml 2014-05-16 08:16:53 UTC (rev 665) @@ -63,6 +63,11 @@ </dependency> <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-service-csv</artifactId> + </dependency> + + <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> @@ -97,6 +102,16 @@ </dependency> <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-config</artifactId> + </dependency> + + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-decorator</artifactId> + </dependency> + + <dependency> <groupId>com.bbn</groupId> <artifactId>openmap</artifactId> </dependency> @@ -130,6 +145,11 @@ <artifactId>h2</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-persistence</artifactId> + <version>3.0-SNAPSHOT</version> + </dependency> </dependencies> Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/DecoratorService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/DecoratorService.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/DecoratorService.java 2014-05-16 08:16:53 UTC (rev 665) @@ -36,12 +36,12 @@ import fr.ulr.sammoa.persistence.Strate; import fr.ulr.sammoa.persistence.StringRef; import fr.ulr.sammoa.persistence.Transect; -import org.nuiton.util.decorator.Decorator; -import org.nuiton.util.decorator.DecoratorProvider; +import org.nuiton.decorator.Decorator; +import org.nuiton.decorator.DecoratorProvider; import java.text.SimpleDateFormat; -import static org.nuiton.i18n.I18n._; +import static org.nuiton.i18n.I18n.t; /** * Sammoa decorator service. @@ -52,7 +52,7 @@ public class DecoratorService extends SammoaServiceSupport { protected SimpleDateFormat dateFormat = - new SimpleDateFormat(_("sammoa.dateTimePattern")); + new SimpleDateFormat(t("sammoa.dateTimePattern")); /** Delegate decorator provider. */ protected DecoratorProvider decoratorProvider; @@ -115,22 +115,22 @@ String result; if (flight == null) { - result = _("sammoa.flight.decorator.newFlight"); + result = t("sammoa.flight.decorator.newFlight"); } else { - result = _("sammoa.flight.decorator.flight", flight.getFlightNumber()); + result = t("sammoa.flight.decorator.flight", flight.getFlightNumber()); if (flight.getBeginDate() != null) { result += " - " + dateFormat.format(flight.getBeginDate()); if (flight.getEndDate() != null) { result += " - " + dateFormat.format(flight.getEndDate()); } else { - result += " - " + _("sammoa.flight.decorator.notEnded"); + result += " - " + t("sammoa.flight.decorator.notEnded"); } } else { - result += " - " + _("sammoa.flight.decorator.notStarted"); + result += " - " + t("sammoa.flight.decorator.notStarted"); } } return result; @@ -142,7 +142,7 @@ @Override public String toString(Object bean) { Position position = (Position) bean; - return _(position.getLabel()); + return t(position.getLabel()); } }); } Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2014-05-16 08:16:53 UTC (rev 665) @@ -32,44 +32,12 @@ import com.google.common.collect.Sets; import fr.ulr.sammoa.application.io.CampaignStorage; import fr.ulr.sammoa.application.io.SammoaStorages; -import fr.ulr.sammoa.persistence.AutoSaveListener; -import fr.ulr.sammoa.persistence.Campaign; -import fr.ulr.sammoa.persistence.Dates; -import fr.ulr.sammoa.persistence.Flight; -import fr.ulr.sammoa.persistence.FlightDAO; -import fr.ulr.sammoa.persistence.Flights; -import fr.ulr.sammoa.persistence.GeoPoint; -import fr.ulr.sammoa.persistence.GeoPointDAO; -import fr.ulr.sammoa.persistence.GeoPointImpl; -import fr.ulr.sammoa.persistence.GeoPoints; -import fr.ulr.sammoa.persistence.Observation; -import fr.ulr.sammoa.persistence.ObservationDAO; -import fr.ulr.sammoa.persistence.ObservationStatus; -import fr.ulr.sammoa.persistence.Observer; -import fr.ulr.sammoa.persistence.ObserverPosition; -import fr.ulr.sammoa.persistence.ObserverPositionDAO; -import fr.ulr.sammoa.persistence.ObserverPositions; -import fr.ulr.sammoa.persistence.Observers; -import fr.ulr.sammoa.persistence.PlatformType; -import fr.ulr.sammoa.persistence.Position; -import fr.ulr.sammoa.persistence.Route; -import fr.ulr.sammoa.persistence.RouteDAO; -import fr.ulr.sammoa.persistence.RouteType; -import fr.ulr.sammoa.persistence.Routes; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; -import fr.ulr.sammoa.persistence.Transect; -import fr.ulr.sammoa.persistence.TransectDAO; -import fr.ulr.sammoa.persistence.TransectFlight; -import fr.ulr.sammoa.persistence.TransectFlightDAO; -import fr.ulr.sammoa.persistence.TransectFlights; -import org.apache.commons.collections.CollectionUtils; +import fr.ulr.sammoa.persistence.*; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.joda.time.Interval; import org.joda.time.Seconds; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.TimeLog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -104,7 +72,7 @@ Preconditions.checkNotNull(campaign); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { List<Flight> result = getFlights(transaction, campaign); @@ -114,32 +82,27 @@ } } - public List<Flight> getFlights(TopiaContext transaction, Campaign campaign) { + public List<Flight> getFlights(SammoaTopiaPersistenceContext transaction, Campaign campaign) { Preconditions.checkNotNull(campaign); long start = TimeLog.getTime(); - try { - FlightDAO dao = SammoaDAOHelper.getFlightDAO(transaction); + FlightTopiaDao dao = transaction.getFlightDao(); - List<Flight> result = dao.findAllByCampaign(campaign); + List<Flight> result = dao.forCampaignEquals(campaign).findAll(); - Collections.sort(result, Flights.orderByDate()); + Collections.sort(result, Flights.orderByDate()); - timeLog.log(start, "getFlights(" + campaign.getCode() + ")"); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + timeLog.log(start, "getFlights(" + campaign.getCode() + ")"); + return result; +} - } - } - public Iterable<Flight> getFlights(Campaign campaign, Date beginDate, Date endDate) { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { Iterable<Flight> result = getFlights(transaction, @@ -153,7 +116,7 @@ } - public Iterable<Flight> getFlights(TopiaContext transaction, + public Iterable<Flight> getFlights(SammoaTopiaPersistenceContext transaction, Campaign campaign, Date beginDate, Date endDate) { @@ -165,18 +128,12 @@ long start = TimeLog.getTime(); List<Flight> campaignFlights; - try { - FlightDAO dao = SammoaDAOHelper.getFlightDAO(transaction); + FlightTopiaDao dao = transaction.getFlightDao(); - campaignFlights = dao.findAllByCampaign(campaign); - Collections.sort(campaignFlights, Flights.orderByDate()); + campaignFlights = dao.forCampaignEquals(campaign).findAll(); + Collections.sort(campaignFlights, Flights.orderByDate()); - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - - } - // Filter on period final Interval interval = Dates.toInterval(beginDate, endDate); Iterable<Flight> result = Iterables.filter(campaignFlights, new Predicate<Flight>() { @@ -196,7 +153,7 @@ Preconditions.checkNotNull(flightId); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { Flight result = getFlight(transaction, flightId); return result; @@ -205,34 +162,30 @@ } } - public Flight getFlight(TopiaContext transaction, String flightId) { + public Flight getFlight(SammoaTopiaPersistenceContext transaction, String flightId) { Preconditions.checkNotNull(flightId); + + long start = TimeLog.getTime(); + FlightTopiaDao dao = transaction.getFlightDao(); - try { - long start = TimeLog.getTime(); - FlightDAO dao = SammoaDAOHelper.getFlightDAO(transaction); + Flight result = (Flight) dao.forTopiaIdEquals(flightId).findUniqueOrNull(); + Preconditions.checkNotNull( + result, String.format("%s doesn't exist", flightId)); - Flight result = dao.findByTopiaId(flightId); - Preconditions.checkNotNull( - result, String.format("%s doesn't exist", flightId)); + if (logger.isInfoEnabled()) { + logger.info("Loading flight {} [{}]", + result.getFlightNumber(), + result.getTopiaId() + ); + } - if (logger.isInfoEnabled()) { - logger.info("Loading flight {} [{}]", - result.getFlightNumber(), - result.getTopiaId() - ); - } + result.sizeObserver(); + result.sizeTransectFlight(); - result.sizeObserver(); - result.sizeTransectFlight(); + timeLog.log(start, "getFlight(" + flightId + ")"); - timeLog.log(start, "getFlight(" + flightId + ")"); - - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } + return result; } /** @@ -247,9 +200,9 @@ */ public Flight createFlight(Campaign campaign, int flightNumber) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { - FlightDAO dao = SammoaDAOHelper.getFlightDAO(tx); + FlightTopiaDao dao = tx.getFlightDao(); int nextFlightNumber = getNextFlightNumber(tx); Preconditions.checkArgument(flightNumber >= nextFlightNumber); @@ -268,7 +221,7 @@ ); } - tx.commitTransaction(); + tx.commit(); // Update flightNumber in config config.setFlightNumber(flightNumber); @@ -283,7 +236,7 @@ return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(tx); } @@ -297,13 +250,14 @@ */ public int getNextFlightNumber() { - TopiaContext tx = persistence.beginTransaction(); + + SammoaTopiaPersistenceContext tx = persistence.beginTransaction(); try { int result = getNextFlightNumber(tx); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(tx); } @@ -312,33 +266,33 @@ public void deleteTransectFlight(Flight flight, TransectFlight transectFlight) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { deleteTransectFlight(tx, flight, transectFlight); - tx.commitTransaction(); + tx.commit(); } catch (TopiaException ex) { - throw new TopiaRuntimeException(ex); + throw new TopiaException(ex); } finally { endTransaction(tx); } } - protected void deleteTransectFlight(TopiaContext tx, + protected void deleteTransectFlight(SammoaTopiaPersistenceContext tx, Flight flight, - TransectFlight transectFlight) - throws TopiaException { + TransectFlight transectFlight) { - SammoaDAOHelper.getObserverPositionDAO(tx).deleteAll( - transectFlight.getObserverPosition()); + ObserverPositionTopiaDao observerPositionDao = tx.getObserverPositionDao(); + observerPositionDao.deleteAll(transectFlight.getObserverPosition()); + flight.removeTransectFlight(transectFlight); - SammoaDAOHelper.getTransectFlightDAO(tx).delete(transectFlight); + tx.getTransectFlightDao().delete(transectFlight); - SammoaDAOHelper.getFlightDAO(tx).update(flight); + tx.getFlightDao().update(flight); } /** @@ -351,14 +305,14 @@ Preconditions.checkArgument(StringUtils.isNotBlank(campaignId)); Preconditions.checkArgument(StringUtils.isNotBlank(flightId)); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { // send delete queries to db deleteFlightInDb(tx, flightId); // commit db - tx.commitTransaction(); + tx.commit(); } catch (TopiaException e) { throw new SammoaTechnicalException(e); @@ -379,22 +333,20 @@ * @param flightId the flight id to remove * @since 0.6 */ - public void deleteFlightInDb(TopiaContext tx, String flightId) { + public void deleteFlightInDb(SammoaTopiaPersistenceContext tx, String flightId) { if (logger.isInfoEnabled()) { logger.info("Delete flight {}", flightId); } try { - FlightDAO dao = SammoaDAOHelper.getFlightDAO(tx); + FlightTopiaDao dao = tx.getFlightDao(); - Flight flight = dao.findByTopiaId(flightId); + Flight flight = (Flight) dao.forTopiaIdEquals(flightId).findUnique(); - Preconditions.checkNotNull(flight); - // delete geoPoints List<GeoPoint> geoPoints = getFlightGeoPoints(tx, flight); - GeoPointDAO geoPointDAO = SammoaDAOHelper.getGeoPointDAO(tx); - geoPointDAO.deleteAll(geoPoints); + GeoPointTopiaDao geoPointDao = tx.getGeoPointDao(); + geoPointDao.deleteAll(geoPoints); Set<ObserverPosition> positions = Sets.newHashSet(); @@ -402,12 +354,12 @@ List<Route> routes = getRoutes(tx, flight); // keep observerPositions to delete from routes positions.addAll(Routes.toObserverPositions(routes)); - RouteDAO routeDAO = SammoaDAOHelper.getRouteDAO(tx); + RouteTopiaDao routeDAO = tx.getRouteDao(); routeDAO.deleteAll(routes); // delete observations List<Observation> observations = getObservations(tx, flight); - ObservationDAO observationDAO = SammoaDAOHelper.getObservationDAO(tx); + ObservationTopiaDao observationDAO = tx.getObservationDao(); observationDAO.deleteAll(observations); // keep observerPositions to delete from transectFlights @@ -417,7 +369,7 @@ dao.delete(flight); // delete observerPositions - ObserverPositionDAO observerPositionDAO = SammoaDAOHelper.getObserverPositionDAO(tx); + ObserverPositionTopiaDao observerPositionDAO = tx.getObserverPositionDao(); observerPositionDAO.deleteAll(positions); } catch (TopiaException e) { @@ -455,7 +407,7 @@ public GeoPoint getGeoPoint(Flight flight, Date date) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { List<GeoPoint> geoPoints = getFlightGeoPoints(tx, flight); @@ -464,13 +416,13 @@ return result; } catch (TopiaException ex) { - throw new TopiaRuntimeException(ex); + throw new TopiaException(ex); } finally { endTransaction(tx); } } - public GeoPoint getGeoPoint(TopiaContext tx, + public GeoPoint getGeoPoint(SammoaTopiaPersistenceContext tx, Flight flight, List<GeoPoint> geoPoints, Date date) throws TopiaException { @@ -503,7 +455,7 @@ result.setFlight(flight); result.setRecordTime(newTime.toDate()); - SammoaDAOHelper.getGeoPointDAO(tx).create(result); + tx.getGeoPointDao().create(result); geoPoints.add(result); if (logger.isDebugEnabled()) { @@ -518,7 +470,7 @@ public List<GeoPoint> getFlightGeoPoints(Flight flight) { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { List<GeoPoint> result = getFlightGeoPoints(transaction, flight); return result; @@ -527,16 +479,16 @@ } } - public List<GeoPoint> getFlightGeoPoints(TopiaContext transaction, + public List<GeoPoint> getFlightGeoPoints(SammoaTopiaPersistenceContext transaction, Flight flight) { try { - GeoPointDAO dao = SammoaDAOHelper.getGeoPointDAO(transaction); + GeoPointTopiaDao dao = transaction.getGeoPointDao(); List<GeoPoint> result = dao.findAllByFlightOrderedByRecordTime(flight); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } } @@ -594,10 +546,10 @@ List<TransectFlight> result = Lists.newArrayList(); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - FlightDAO flightDAO = SammoaDAOHelper.getFlightDAO(transaction); + FlightTopiaDao flightDAO = transaction.getFlightDao(); // Reverse the list to always use the same fromIndex using // with List.add method @@ -612,18 +564,15 @@ transaction, transect, flight); logger.debug("Add transect {} to the flight {}", - transect.getName(), flight.getFlightNumber()); + transect.getName(), flight.getFlightNumber()); result.add(transectFlight); flight.addTransectFlight(fromIndex, transectFlight); } flightDAO.update(flight); - transaction.commitTransaction(); + transaction.commit(); - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } finally { endTransaction(transaction); } @@ -637,23 +586,14 @@ public Map<Transect, Long> getTransectRealNbTimes(Collection<Transect> transects) { - - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - TransectFlightDAO dao = - SammoaDAOHelper.getTransectFlightDAO(transaction); + TransectFlightTopiaDao dao = transaction.getTransectFlightDao(); Map<Transect, Long> result; - if (CollectionUtils.isEmpty(transects)) { - result = dao.countAllByTransect(); - } else { - result = dao.countAllByTransects(transects); - } + result = dao.countAllByTransect(transects); return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } finally { endTransaction(transaction); } @@ -667,7 +607,7 @@ */ public List<Route> getRoutes(Flight flight) { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { List<Route> result = getRoutes(transaction, flight); return result; @@ -682,16 +622,12 @@ * @param flight Flight * @return the List of Route matching the {@code flight} */ - public List<Route> getRoutes(TopiaContext transaction, Flight flight) { + public List<Route> getRoutes(SammoaTopiaPersistenceContext transaction, Flight flight) { - try { - RouteDAO dao = SammoaDAOHelper.getRouteDAO(transaction); - List<Route> result = dao.findAllByFlightOrderedByBeginTime(flight); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } + RouteTopiaDao dao = transaction.getRouteDao(); + List<Route> result = dao.findAllByFlightOrderedByBeginTime(flight); + return result; } /** @@ -703,11 +639,11 @@ */ public Route getLastUnfinishedRoute(Flight flight) { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { Route result; if (flight.getEndDate() == null) { - RouteDAO dao = SammoaDAOHelper.getRouteDAO(transaction); + RouteTopiaDao dao = transaction.getRouteDao(); result = dao.findLastByFlight(flight); } else { @@ -715,7 +651,7 @@ } return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); @@ -724,14 +660,14 @@ public Route getPreviousRoute(Route route) { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - RouteDAO dao = SammoaDAOHelper.getRouteDAO(transaction); + RouteTopiaDao dao = transaction.getRouteDao(); Route result = dao.findPreviousRoute(route); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); @@ -745,14 +681,14 @@ result = previousRoute.getTransectFlight(); } else { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - RouteDAO dao = SammoaDAOHelper.getRouteDAO(transaction); + RouteTopiaDao dao = transaction.getRouteDao(); Route previousLEG = dao.findPreviousLEG(previousRoute); result = previousLEG == null ? null : previousLEG.getTransectFlight(); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); @@ -761,7 +697,7 @@ return result; } - protected TransectFlight getPreviousTransect(TopiaContext tx, + protected TransectFlight getPreviousTransect(SammoaTopiaPersistenceContext tx, Route previousRoute) throws TopiaException { @@ -771,7 +707,7 @@ } else { - RouteDAO dao = SammoaDAOHelper.getRouteDAO(tx); + RouteTopiaDao dao = tx.getRouteDao(); Route previousLEG = dao.findPreviousLEG(previousRoute); result = previousLEG == null ? null : previousLEG.getTransectFlight(); } @@ -780,7 +716,7 @@ public List<Observation> getObservations(Flight flight) { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { List<Observation> result = getObservations(transaction, flight); return result; @@ -789,17 +725,17 @@ } } - public List<Observation> getObservations(TopiaContext transaction, + public List<Observation> getObservations(SammoaTopiaPersistenceContext transaction, Flight flight) { try { - ObservationDAO dao = SammoaDAOHelper.getObservationDAO(transaction); + ObservationTopiaDao dao = transaction.getObservationDao(); List<Observation> result = dao.findAllByFlightOrderedByObservationTime(flight); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } } @@ -808,13 +744,12 @@ Observer observer, Position position) { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { Collection<ObserverPosition> observerPositions = route.getObserverPosition(); - ObserverPositionDAO observerPositionDAO = - SammoaDAOHelper.getObserverPositionDAO(transaction); + ObserverPositionTopiaDao observerPositionDAO = transaction.getObserverPositionDao(); ObserverPosition observerPosition = Iterables.find(observerPositions, @@ -850,33 +785,32 @@ debugObserverPositions("Update", observerPositions); - transaction.commitTransaction(); + transaction.commit(); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); } } - protected TransectFlight createTransectFlight(TopiaContext transaction, + protected TransectFlight createTransectFlight(SammoaTopiaPersistenceContext transaction, Transect transect, Flight flight) throws TopiaException { - TransectFlightDAO transectFlightDAO = - SammoaDAOHelper.getTransectFlightDAO(transaction); + TransectFlightTopiaDao transectFlightDAO = transaction.getTransectFlightDao(); int crossingNumber = transectFlightDAO.getMaxCrossingNumberByTransect(transect) + 1; - TransectFlight result = transectFlightDAO.create(); + TransectFlight result = (TransectFlight)transectFlightDAO.create(); result.setTransect(transect); result.setCrossingNumber(crossingNumber); // Update transect for nbTimes - TransectDAO transectDAO = SammoaDAOHelper.getTransectDAO(transaction); + TransectTopiaDao transectDAO = transaction.getTransectDao(); transectDAO.update(transect); logger.debug("Transect {} saved with nbTimes = {}", transect.getName(), crossingNumber); @@ -888,7 +822,7 @@ return result; } - public Observation createObservation(TopiaContext transaction, + public Observation createObservation(SammoaTopiaPersistenceContext transaction, Flight flight, Date beginTime, Position position) @@ -896,7 +830,7 @@ Observation result; - ObservationDAO dao = SammoaDAOHelper.getObservationDAO(transaction); + ObservationTopiaDao dao = transaction.getObservationDao(); int number = dao.findLastObservationNumber(flight); @@ -908,7 +842,7 @@ return result; } - public Route createTransit(TopiaContext transaction, + public Route createTransit(SammoaTopiaPersistenceContext transaction, Flight flight, Date beginTime, Route previousRoute) @@ -923,7 +857,7 @@ return result; } - public Route createLeg(TopiaContext transaction, + public Route createLeg(SammoaTopiaPersistenceContext transaction, Flight flight, Date beginTime, Route previousRoute, @@ -941,7 +875,7 @@ previousRoute, transectFlight); - RouteDAO dao = SammoaDAOHelper.getRouteDAO(transaction); + RouteTopiaDao dao = transaction.getRouteDao(); result.setTransectFlight(transectFlight); @@ -951,7 +885,7 @@ return result; } - public Route createCircleBack(TopiaContext transaction, + public Route createCircleBack(SammoaTopiaPersistenceContext transaction, Flight flight, Date beginTime, Route previousRoute, @@ -974,7 +908,7 @@ return result; } - protected Route createRoute(TopiaContext transaction, + protected Route createRoute(SammoaTopiaPersistenceContext transaction, Flight flight, Date beginTime, RouteType type, @@ -982,10 +916,10 @@ TransectFlight transectFlight) throws TopiaException { - RouteDAO dao = SammoaDAOHelper.getRouteDAO(transaction); + RouteTopiaDao dao = transaction.getRouteDao(); // Create the new Route - Route result = dao.create(); + Route result = (Route) dao.create(); result.setBeginTime(beginTime); result.setRouteType(type); result.setFlight(flight); @@ -1023,7 +957,7 @@ return result; } - protected Collection<ObserverPosition> createRouteObserverPositions(TopiaContext transaction, + protected Collection<ObserverPosition> createRouteObserverPositions(SammoaTopiaPersistenceContext transaction, Route previousRoute, TransectFlight transectFlight, Flight flight) @@ -1064,14 +998,13 @@ return result; } - protected Collection<ObserverPosition> createObserverPositions(TopiaContext transaction, + protected Collection<ObserverPosition> createObserverPositions(SammoaTopiaPersistenceContext transaction, Flight flight) throws TopiaException { Collection<ObserverPosition> result = Lists.newArrayList(); - ObserverPositionDAO observerPositionDAO = - SammoaDAOHelper.getObserverPositionDAO(transaction); + ObserverPositionTopiaDao observerPositionDAO = transaction.getObserverPositionDao(); // Prepare positions // TODO-fdesbois-2012-06-13 : make positions depends on platformType @@ -1106,7 +1039,7 @@ return result; } - protected Collection<ObserverPosition> copyObserverPositions(TopiaContext transaction, + protected Collection<ObserverPosition> copyObserverPositions(SammoaTopiaPersistenceContext transaction, Collection<ObserverPosition> observerPositions) throws TopiaException { @@ -1114,8 +1047,7 @@ debugObserverPositions("Copy", observerPositions); - ObserverPositionDAO observerPositionDAO = - SammoaDAOHelper.getObserverPositionDAO(transaction); + ObserverPositionTopiaDao observerPositionDAO = transaction.getObserverPositionDao(); for (ObserverPosition source : observerPositions) { @@ -1146,9 +1078,9 @@ } } - protected int getNextFlightNumber(TopiaContext tx) throws TopiaException { + protected int getNextFlightNumber(SammoaTopiaPersistenceContext tx) throws TopiaException { - FlightDAO dao = SammoaDAOHelper.getFlightDAO(tx); + FlightTopiaDao dao = tx.getFlightDao(); int confNumber = config.getFlightNumber(); Integer dbNumber = dao.findLastFlightNumber(); @@ -1162,18 +1094,18 @@ public TransectFlight getNextTransectFlightFrom(TransectFlight transectFlight, Flight flight, Date beforeTime) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { TransectFlight result = getNextTransectFlightFrom(tx, transectFlight, flight, beforeTime); return result; } catch (TopiaException ex) { - throw new TopiaRuntimeException(ex); + throw new TopiaException(ex); } finally { endTransaction(tx); } } - public TransectFlight getNextTransectFlightFrom(TopiaContext tx, + public TransectFlight getNextTransectFlightFrom(SammoaTopiaPersistenceContext tx, TransectFlight transectFlight, Flight flight, Date beforeTime) @@ -1181,7 +1113,7 @@ // Note that this may not reflect the real next transect if exists in routes - RouteDAO routeDAO = SammoaDAOHelper.getRouteDAO(tx); + RouteTopiaDao routeDAO = tx.getRouteDao(); // Skip previous elements int numberToSkip; @@ -1206,10 +1138,10 @@ } public Flight getFlightByNaturalId(Map<String, Object> naturalId) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { - FlightDAO dao = SammoaDAOHelper.getFlightDAO(tx); - Flight result = dao.findByProperties(naturalId); + FlightTopiaDao dao = tx.getFlightDao(); + Flight result = (Flight)dao.forProperties(naturalId).findAnyOrNull(); return result; } catch (TopiaException e) { throw new SammoaTechnicalException(e); Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2014-05-16 08:16:53 UTC (rev 665) @@ -29,27 +29,25 @@ import fr.ulr.sammoa.application.io.CampaignStorage; import fr.ulr.sammoa.application.io.SammoaStorages; import fr.ulr.sammoa.persistence.Campaign; -import fr.ulr.sammoa.persistence.CampaignDAO; +import fr.ulr.sammoa.persistence.CampaignTopiaDao; import fr.ulr.sammoa.persistence.Flight; import fr.ulr.sammoa.persistence.Observer; -import fr.ulr.sammoa.persistence.ObserverDAO; import fr.ulr.sammoa.persistence.ObserverPosition; -import fr.ulr.sammoa.persistence.ObserverPositionDAO; +import fr.ulr.sammoa.persistence.ObserverPositionTopiaDao; +import fr.ulr.sammoa.persistence.ObserverTopiaDao; import fr.ulr.sammoa.persistence.Observers; import fr.ulr.sammoa.persistence.Region; -import fr.ulr.sammoa.persistence.RegionDAO; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; +import fr.ulr.sammoa.persistence.RegionTopiaDao; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.Sector; -import fr.ulr.sammoa.persistence.SectorDAO; +import fr.ulr.sammoa.persistence.SectorTopiaDao; import fr.ulr.sammoa.persistence.Species; -import fr.ulr.sammoa.persistence.SpeciesDAO; +import fr.ulr.sammoa.persistence.SpeciesTopiaDao; import fr.ulr.sammoa.persistence.Strate; -import fr.ulr.sammoa.persistence.StrateDAO; +import fr.ulr.sammoa.persistence.StrateTopiaDao; import fr.ulr.sammoa.persistence.Transect; -import fr.ulr.sammoa.persistence.TransectDAO; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; +import fr.ulr.sammoa.persistence.TransectTopiaDao; +import org.nuiton.topia.persistence.TopiaException; import java.io.File; import java.io.IOException; @@ -72,23 +70,23 @@ public List<Region> getRegions() { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - RegionDAO dao = SammoaDAOHelper.getRegionDAO(transaction); + RegionTopiaDao dao = transaction.getRegionDao(); List<Region> result = dao.findAll(); if (result.isEmpty()) { Region region = dao.createByNaturalId("FR-METRO"); - transaction.commitTransaction(); + transaction.commit(); result = Lists.newArrayList(region); } return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); } @@ -99,10 +97,10 @@ Preconditions.checkNotNull(region); Preconditions.checkNotNull(region.getCode()); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - RegionDAO dao = SammoaDAOHelper.getRegionDAO(transaction); + RegionTopiaDao dao = transaction.getRegionDao(); String result; if (region.getTopiaId() == null) { @@ -124,11 +122,11 @@ dao.update(existRegion); } - transaction.commitTransaction(); + transaction.commit(); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); } @@ -141,14 +139,12 @@ public List<Species> getAllSpecies(Campaign campaign) { Preconditions.checkNotNull(campaign); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - SpeciesDAO dao = SammoaDAOHelper.getSpeciesDAO(transaction); - List<Species> result = dao.findAllByRegion(campaign.getRegion()); + SpeciesTopiaDao dao = transaction.getSpeciesDao(); + List<Species> result = dao.forRegionEquals(campaign.getRegion()).findAll(); return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); } finally { endTransaction(transaction); } @@ -156,14 +152,12 @@ public Collection<Species> getAllValidSpecies() { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - SpeciesDAO dao = SammoaDAOHelper.getSpeciesDAO(transaction); - Collection<Species> result = dao.findAllByLocalCreation(false); + SpeciesTopiaDao dao = transaction.getSpeciesDao(); + Collection<Species> result = dao.forLocalCreationEquals(false).findAll(); return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); } finally { endTransaction(transaction); } @@ -175,25 +169,23 @@ public List<Campaign> getCampaigns() { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(transaction); + CampaignTopiaDao dao = transaction.getCampaignDao(); List<Campaign> result = - dao.findAllWithOrder(Campaign.PROPERTY_BEGIN_DATE + " DESC"); + dao.forAll().setOrderByArguments(Campaign.PROPERTY_BEGIN_DATE + " DESC").findAll(); return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); } finally { endTransaction(transaction); } } public Campaign getCampaignByNaturalId(Map<String, Object> naturalId) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { - CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(tx); - Campaign result = dao.findByProperties(naturalId); + CampaignTopiaDao dao = tx.getCampaignDao(); + Campaign result = dao.forProperties(naturalId).findAnyOrNull(); return result; } catch (TopiaException e) { throw new SammoaTechnicalException(e); @@ -205,13 +197,13 @@ public Campaign getCampaign(String topiaId) { Preconditions.checkNotNull(topiaId); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(transaction); + CampaignTopiaDao dao = transaction.getCampaignDao(); Campaign result = dao.findByTopiaId(topiaId); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); } @@ -226,10 +218,10 @@ Preconditions.checkNotNull(campaign.getCode()); Preconditions.checkNotNull(campaign.getRegion()); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(transaction); + CampaignTopiaDao dao = transaction.getCampaignDao(); String result; @@ -261,7 +253,7 @@ dao.update(existCampaign); } - transaction.commitTransaction(); + transaction.commit(); if (createCampaign) { @@ -275,7 +267,7 @@ return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); } @@ -284,9 +276,9 @@ public void deleteCampaign(String campaignId) { Preconditions.checkNotNull(campaignId); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { - CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(tx); + CampaignTopiaDao dao = tx.getCampaignDao(); Campaign campaign = dao.findByTopiaId(campaignId); @@ -302,37 +294,36 @@ } // delete observers and observerPositions - ObserverDAO observerDAO = SammoaDAOHelper.getObserverDAO(tx); - List<Observer> observers = observerDAO.findAllByCampaign(campaign); - ObserverPositionDAO observerPositionDAO = - SammoaDAOHelper.getObserverPositionDAO(tx); + ObserverTopiaDao observerDAO = tx.getObserverDao(); + List<Observer> observers = observerDAO.forCampaignEquals(campaign).findAll(); + ObserverPositionTopiaDao observerPositionDAO = tx.getObserverPositionDao(); Set<ObserverPosition> positions = Sets.newHashSet(); for (Observer observer : observers) { - positions.addAll(observerPositionDAO.findAllByObserver(observer)); + positions.addAll(observerPositionDAO.forObserverEquals(observer).findAll()); } observerDAO.deleteAll(observers); observerPositionDAO.deleteAll(positions); // delete transects List<Transect> transects = getAllTransects(tx, campaign); - TransectDAO transectDAO = SammoaDAOHelper.getTransectDAO(tx); + TransectTopiaDao transectDAO = tx.getTransectDao(); transectDAO.deleteAll(transects); // delete strates List<Strate> strates = getAllStrates(tx, campaign); - StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(tx); + StrateTopiaDao strateDAO = tx.getStrateDao(); strateDAO.deleteAll(strates); // delete sectors - SectorDAO sectorDAO = SammoaDAOHelper.getSectorDAO(tx); - List<Sector> sectors = sectorDAO.findAllByCampaign(campaign); + SectorTopiaDao sectorDAO = tx.getSectorDao(); + List<Sector> sectors = sectorDAO.forCampaignEquals(campaign).findAll(); sectorDAO.deleteAll(sectors); // delete campaign dao.delete(campaign); // commit - tx.commitTransaction(); + tx.commit(); } catch (TopiaException e) { throw new SammoaTechnicalException(e); @@ -351,7 +342,7 @@ public List<Transect> getAllTransects(Campaign campaign) { Preconditions.checkNotNull(campaign); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { List<Transect> result = getAllTransects(transaction, campaign); @@ -361,31 +352,31 @@ } } - public List<Transect> getAllTransects(TopiaContext tx, Campaign campaign) { + public List<Transect> getAllTransects(SammoaTopiaPersistenceContext tx, Campaign campaign) { Preconditions.checkNotNull(tx); Preconditions.checkNotNull(campaign); try { - TransectDAO dao = SammoaDAOHelper.getTransectDAO(tx); + TransectTopiaDao dao = tx.getTransectDao(); List<Transect> result = dao.findAllByCampaignOrderedByName(campaign); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } } public Transect getTransect(String transectId) { Preconditions.checkNotNull(transectId); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - TransectDAO dao = SammoaDAOHelper.getTransectDAO(transaction); - Transect result = dao.findByTopiaId(transectId); + TransectTopiaDao dao = transaction.getTransectDao(); + Transect result = (Transect) dao.forTopiaIdEquals(transectId).findUniqueOrNull(); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); @@ -398,10 +389,10 @@ Preconditions.checkNotNull(transect.getName()); Preconditions.checkNotNull(transect.getStrate()); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - TransectDAO dao = SammoaDAOHelper.getTransectDAO(transaction); + TransectTopiaDao dao = transaction.getTransectDao(); Transect existTransect = dao.findByNaturalId(transect.getName(), transect.getStrate()); @@ -411,12 +402,12 @@ transect.getStrate()); newTransect.setLocalCreation(true); - transaction.commitTransaction(); + transaction.commit(); String result = newTransect.getTopiaId(); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); } @@ -429,7 +420,7 @@ public List<Strate> getAllStrates(Campaign campaign) { Preconditions.checkNotNull(campaign); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { List<Strate> result = getAllStrates(transaction, campaign); return result; @@ -439,16 +430,16 @@ } } - public List<Strate> getAllStrates(TopiaContext tx, Campaign campaign) { + public List<Strate> getAllStrates(SammoaTopiaPersistenceContext tx, Campaign campaign) { Preconditions.checkNotNull(tx); Preconditions.checkNotNull(campaign); try { - StrateDAO dao = SammoaDAOHelper.getStrateDAO(tx); + StrateTopiaDao dao = tx.getStrateDao(); List<Strate> result = dao.findAllByCampaignOrderedByCode(campaign); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } } @@ -459,19 +450,19 @@ public List<Observer> getAllObservers(Campaign campaign) { Preconditions.checkNotNull(campaign); - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - ObserverDAO dao = SammoaDAOHelper.getObserverDAO(transaction); - List<Observer> result = dao.findAllByCampaign(campaign); + ObserverTopiaDao dao = transaction.getObserverDao(); + List<Observer> result = dao.forCampaignEquals(campaign).findAll(); Collections.sort(result, Observers.onInitials()); // realy creating observers - transaction.commitTransaction(); + transaction.commit(); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); } @@ -481,9 +472,9 @@ public void deleteAllData() { Iterable<String> campaignIds; - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { - CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(tx); + CampaignTopiaDao dao = tx.getCampaignDao(); campaignIds = dao.findAllIds(); } catch (TopiaException e) { throw new SammoaTechnicalException(e); Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaApplicationConfigProvider.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaApplicationConfigProvider.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaApplicationConfigProvider.java 2014-05-16 08:16:53 UTC (rev 665) @@ -24,13 +24,16 @@ * #L% */ -import org.nuiton.util.ApplicationConfig; -import org.nuiton.util.ApplicationConfigProvider; +import org.nuiton.config.ApplicationConfigProvider; +import org.nuiton.config.ConfigActionDef; +import org.nuiton.config.ConfigOptionDef; + import java.util.Locale; -import static org.nuiton.i18n.I18n.l_; +import static org.nuiton.i18n.I18n.l; + /** * Application config provider (for site generation). * @@ -46,16 +49,16 @@ @Override public String getDescription(Locale locale) { - return l_(locale, "sammoa.application.config"); + return l(locale, "sammoa.application.config"); } @Override - public ApplicationConfig.OptionDef[] getOptions() { + public ConfigOptionDef[] getOptions() { return SammoaConfig.SammoaConfigOption.values(); } @Override - public ApplicationConfig.ActionDef[] getActions() { - return new ApplicationConfig.ActionDef[0]; + public ConfigActionDef[] getActions() { + return new ConfigActionDef[0]; } } Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2014-05-16 08:16:53 UTC (rev 665) @@ -32,18 +32,19 @@ import fr.ulr.sammoa.persistence.AutoSaveListener; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.builder.ReflectionToStringBuilder; -import org.nuiton.util.ApplicationConfig; -import org.nuiton.util.ArgumentsParserException; +import org.nuiton.config.ApplicationConfig; +import org.nuiton.config.ArgumentsParserException; +import org.nuiton.config.ConfigOptionDef; import org.nuiton.util.Version; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.KeyStroke; +import javax.swing.*; import java.io.File; import java.io.IOException; import java.net.URL; -import static org.nuiton.i18n.I18n.n_; +import static org.nuiton.i18n.I18n.n; /** * Sammoa application config @@ -295,52 +296,52 @@ * @author sletellier <letellier@codelutin.com> * @author fdesbois <fdesbois@codelutin.com> */ - public enum SammoaConfigOption implements ApplicationConfig.OptionDef { + public enum SammoaConfigOption implements ConfigOptionDef { /** Main directory where to put sammoa data (logs, and others...). */ DATA_DIRECTORY("sammoa.data.directory", - n_("sammoa.config.data.directory"), + n("sammoa.config.data.directory"), "${user.home}/.sammoa", File.class ), TMP_DIRECTORY("sammoa.tmp.directory", - n_("sammoa.config.tmp.directory"), + n("sammoa.config.tmp.directory"), "${java.io.tmpdir}/sammoa", File.class ), LOG_FILE("sammoa.logFile", - n_("sammoa.config.log.file"), + n("sammoa.config.log.file"), "${sammoa.data.directory}/log/sammoa.log", File.class ), UI_CONFIG_FILE("sammoa.ui.config", - n_("sammoa.config.ui.config"), + n("sammoa.config.ui.config"), "${sammoa.data.directory}/sammoaUI.xml", File.class ), VERSION("sammoa.version", - n_("sammoa.config.application.version"), + n("sammoa.config.application.version"), "", Version.class, false, true ), SITE_URL("sammoa.url", - n_("sammoa.config.application.site.url"), + n("sammoa.config.application.site.url"), "http://forge.codelutin.com/projects/sammoa", URL.class, false, true ), ORGANIZATION_NAME("sammoa.organizationName", - n_("sammoa.config.license.organizationName"), + n("sammoa.config.license.organizationName"), "", String.class, false, true ), INCEPTION_YEAR("sammoa.inceptionYear", - n_("sammoa.config.license.organizationName"), + n("sammoa.config.license.organizationName"), "2012", Integer.class, false, @@ -348,134 +349,134 @@ ), /** The id/name of the current system/computer */ SYSTEM_ID("sammoa.systemId", - n_("sammoa.config.system.id"), + n("sammoa.config.system.id"), "A", String.class ), /** The starting value to increment flight number */ FLIGHT_NUMBER("sammoa.flightNumber", - n_("sammoa.config.flight.number"), + n("sammoa.config.flight.number"), "0", Integer.class ), /** The backgroud shape file to display the world */ BACKGROUND_SHAPE_FILE("sammoa.backgroundShapeFile", - n_("sammoa.config.background.shape.file"), + n("sammoa.config.background.shape.file"), "shape/vmap_area_thin.shp", File.class ), /** The auto commit delay for {@link AutoSaveListener} */ AUTO_COMMIT_DELAY("sammoa.autoCommitDelay", - n_("sammoa.config.autoCommitDelay"), + n("sammoa.config.autoCommitDelay"), "30000", Long.class ), CAMPAIGN_ID("sammoa.campaignId", - n_("sammoa.config.campaign.id"), + n("sammoa.config.campaign.id"), null, Integer.class ), KEY_START("sammoa.ui." + PROPERTY_START, - n_("sammoa.config.ui.start"), + n("sammoa.config.ui.start"), "ctrl pressed B", KeyStroke.class, false, false), KEY_STOP("sammoa.ui." + PROPERTY_STOP, - n_("sammoa.config.ui.stop"), + n("sammoa.config.ui.stop"), "ctrl pressed E", KeyStroke.class, false, false), KEY_BEGIN("sammoa.ui." + PROPERTY_BEGIN, - n_("sammoa.config.ui.begin"), + n("sammoa.config.ui.begin"), "pressed F5", KeyStroke.class, false, false), KEY_END("sammoa.ui." + PROPERTY_END, - n_("sammoa.config.ui.end"), + n("sammoa.config.ui.end"), "pressed F9", KeyStroke.class, false, false), KEY_NEXT("sammoa.ui." + PROPERTY_NEXT, - n_("sammoa.config.ui.next"), + n("sammoa.config.ui.next"), "pressed F10", KeyStroke.class, false, false), KEY_ADD("sammoa.ui." + PROPERTY_ADD, - n_("sammoa.config.ui.add"), + n("sammoa.config.ui.add"), "pressed F7", KeyStroke.class, false, false), KEY_LEFT_OBSERVATION("sammoa.ui." + PROPERTY_LEFT_OBSERVATION, - n_("sammoa.config.ui.leftObservation"), + n("sammoa.config.ui.leftObservation"), "pressed F1", KeyStroke.class, false, false), KEY_CENTER_OBSERVATION("sammoa.ui." + PROPERTY_CENTER_OBSERVATION, - n_("sammoa.config.ui.centerObservation"), + n("sammoa.config.ui.centerObservation"), "pressed F3", KeyStroke.class, false, false), KEY_RIGHT_OBSERVATION("sammoa.ui." + PROPERTY_RIGHT_OBSERVATION, - n_("sammoa.config.ui.rightObservation"), + n("sammoa.config.ui.rightObservation"), "pressed F12", KeyStroke.class, false, false), KEY_CIRCLE_BACK("sammoa.ui." + PROPERTY_CIRCLE_BACK, - n_("sammoa.config.ui.circleBack"), + n("sammoa.config.ui.circleBack"), "pressed F11", KeyStroke.class, false, false), KEY_VALID_FLIGHT("sammoa.ui." + PROPERTY_VALID_FLIGHT, - n_("sammoa.config.ui.validFlight"), + n("sammoa.config.ui.validFlight"), "alt pressed F", KeyStroke.class, false, false), KEY_VALID_TRANSECT("sammoa.ui." + PROPERTY_VALID_TRANSECT, - n_("sammoa.config.ui.validTransect"), + n("sammoa.config.ui.validTransect"), "alt pressed T", KeyStroke.class, false, false), KEY_VALID_ROUTE("sammoa.ui." + PROPERTY_VALID_ROUTE, - n_("sammoa.config.ui.validRoute"), + n("sammoa.config.ui.validRoute"), "alt pressed R", KeyStroke.class, false, false), KEY_VALID_OBSERVATION("sammoa.ui." + PROPERTY_VALID_OBSERVATION, - n_("sammoa.config.ui.validObservation"), + n("sammoa.config.ui.validObservation"), "alt pressed O", KeyStroke.class, false, false), CSV_SEPARATOR("sammoa.csvSeparator", - n_("sammoa.config.csv.separator"), + n("sammoa.config.csv.separator"), ";", char.class); /** Configuration key. */ Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2014-05-16 08:16:53 UTC (rev 665) @@ -26,8 +26,8 @@ import fr.ulr.sammoa.application.io.CampaignStorage; import fr.ulr.sammoa.application.io.SammoaStorages; import fr.ulr.sammoa.persistence.SammoaPersistence; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import org.apache.commons.io.FileUtils; -import org.nuiton.topia.TopiaContext; import org.nuiton.util.ZipUtil; import java.io.File; @@ -72,12 +72,12 @@ return campaignStorage; } - protected TopiaContext beginTransaction() { - TopiaContext tx = persistence.beginTransaction(); - return tx; + protected SammoaTopiaPersistenceContext beginTransaction() { + SammoaTopiaPersistenceContext sammoaTopiaPersistenceContext = persistence.beginTransaction(); + return sammoaTopiaPersistenceContext; } - protected void endTransaction(TopiaContext tx) { + protected void endTransaction(SammoaTopiaPersistenceContext tx) { persistence.endTransaction(tx); } Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ValidationService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ValidationService.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ValidationService.java 2014-05-16 08:16:53 UTC (rev 665) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: Application - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -26,18 +26,16 @@ import com.google.common.collect.ImmutableList; import fr.ulr.sammoa.persistence.Flight; import fr.ulr.sammoa.persistence.Observation; -import fr.ulr.sammoa.persistence.ObservationDAO; +import fr.ulr.sammoa.persistence.ObservationTopiaDao; import fr.ulr.sammoa.persistence.Observations; -import fr.ulr.sammoa.persistence.ObserverPositionDAO; +import fr.ulr.sammoa.persistence.ObserverPositionTopiaDao; import fr.ulr.sammoa.persistence.Route; -import fr.ulr.sammoa.persistence.RouteDAO; +import fr.ulr.sammoa.persistence.RouteTopiaDao; import fr.ulr.sammoa.persistence.Routes; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.TransectFlight; -import fr.ulr.sammoa.persistence.TransectFlightDAO; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; +import fr.ulr.sammoa.persistence.TransectFlightTopiaDao; +import org.nuiton.topia.persistence.TopiaException; import java.util.List; @@ -52,10 +50,10 @@ List<Route> routes, boolean valid) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { - TransectFlightDAO transectFlightDAO = SammoaDAOHelper.getTransectFlightDAO(tx); + TransectFlightTopiaDao transectFlightDAO = tx.getTransectFlightDao(); // Valid all transectFlights List<TransectFlight> transectFlights = ImmutableList.copyOf(flight.getTransectFlight()); @@ -68,7 +66,7 @@ flight.getTransectFlight().set(i, transectFlight); } - RouteDAO routeDAO = SammoaDAOHelper.getRouteDAO(tx); + RouteTopiaDao routeDAO = tx.getRouteDao(); Iterable<Route> otherRoutes = Routes.filterWithNoTransectFlight(routes); for (Route otherRoute : otherRoutes) { @@ -76,10 +74,10 @@ validateRoute(tx, route, valid); } - tx.commitTransaction(); + tx.commit(); } catch (TopiaException ex) { - throw new TopiaRuntimeException(ex); + throw new TopiaException(ex); } finally { endTransaction(tx); } @@ -88,23 +86,23 @@ public TransectFlight validateTransectFlight(Flight flight, TransectFlight transectFlight) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { - TransectFlightDAO transectFlightDAO = SammoaDAOHelper.getTransectFlightDAO(tx); + TransectFlightTopiaDao transectFlightDAO = tx.getTransectFlightDao(); TransectFlight result = transectFlightDAO.findByTopiaId(transectFlight.getTopiaId()); boolean valid = !transectFlight.isValid(); validateTransectFlight(tx, flight, result, valid); - tx.commitTransaction(); + tx.commit(); transectFlight.setValid(valid); return result; } catch (TopiaException ex) { - throw new TopiaRuntimeException(ex); + throw new TopiaException(ex); } finally { endTransaction(tx); } @@ -112,23 +110,23 @@ public Route validateRoute(Route route) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { - RouteDAO routeDAO = SammoaDAOHelper.getRouteDAO(tx); + RouteTopiaDao routeDAO = tx.getRouteDao(); Route result = routeDAO.findByTopiaId(route.getTopiaId()); boolean valid = !route.isValid(); validateRoute(tx, result, valid); - tx.commitTransaction(); + tx.commit(); route.setValid(valid); return result; } catch (TopiaException ex) { - throw new TopiaRuntimeException(ex); + throw new TopiaException(ex); } finally { endTransaction(tx); } @@ -136,10 +134,10 @@ public Observation validateObservation(Observation observation) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { - ObservationDAO dao = SammoaDAOHelper.getObservationDAO(tx); + ObservationTopiaDao dao = tx.getObservationDao(); Observation result = dao.findByTopiaId(observation.getTopiaId()); @@ -147,19 +145,19 @@ validateObservation(tx, result, valid); - tx.commitTransaction(); + tx.commit(); observation.setValid(valid); return result; } catch (TopiaException ex) { - throw new TopiaRuntimeException(ex); + throw new TopiaException(ex); } finally { endTransaction(tx); } } - protected void validateTransectFlight(TopiaContext tx, + protected void validateTransectFlight(SammoaTopiaPersistenceContext tx, Flight flight, TransectFlight transectFlight, boolean valid) @@ -172,10 +170,10 @@ } else { - TransectFlightDAO transectFlightDAO = SammoaDAOHelper.getTransectFlightDAO(tx); + TransectFlightTopiaDao transectFlightDAO = tx.getTransectFlightDao(); - RouteDAO routeDAO = SammoaDAOHelper.getRouteDAO(tx); - List<Route> routes = routeDAO.findAllByTransectFlight(transectFlight); + RouteTopiaDao routeDAO = tx.getRouteDao(); + List<Route> routes = routeDAO.forTransectFlightEquals(transectFlight).findAll(); for (Route route : routes) { validateRoute(tx, route, valid); @@ -186,16 +184,16 @@ } } - protected void validateRoute(TopiaContext tx, + protected void validateRoute(SammoaTopiaPersistenceContext tx, Route route, boolean valid) throws TopiaException { - RouteDAO routeDAO = SammoaDAOHelper.getRouteDAO(tx); + RouteTopiaDao routeDAO = tx.getRouteDao(); if (route.isDeleted()) { - ObserverPositionDAO observerPositionDAO = SammoaDAOHelper.getObserverPositionDAO(tx); + ObserverPositionTopiaDao observerPositionDAO = tx.getObserverPositionDao(); observerPositionDAO.deleteAll(route.getObserverPosition()); routeDAO.delete(route); @@ -204,10 +202,10 @@ Flight flight = route.getFlight(); - List<Route> routes = routeDAO.findAllByFlight(flight); + List<Route> routes = routeDAO.forFlightEquals(flight).findAll(); - ObservationDAO observationDAO = SammoaDAOHelper.getObservationDAO(tx); - List<Observation> observations = observationDAO.findAllByFlight(flight); + ObservationTopiaDao observationDAO = tx.getObservationDao(); + List<Observation> observations = observationDAO.forFlightEquals(flight).findAll(); Iterable<Observation> routeObservations = Observations.filterInRoute(observations, route, routes, true); @@ -221,12 +219,12 @@ } } - protected void validateObservation(TopiaContext tx, + protected void validateObservation(SammoaTopiaPersistenceContext tx, Observation observation, boolean valid) throws TopiaException { - ObservationDAO dao = SammoaDAOHelper.getObservationDAO(tx); + ObservationTopiaDao dao = tx.getObservationDao(); if (observation.isDeleted()) { Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/DeviceManagerProvider.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/DeviceManagerProvider.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/DeviceManagerProvider.java 2014-05-16 08:16:53 UTC (rev 665) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: Application - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioConfig.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioConfig.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioConfig.java 2014-05-16 08:16:53 UTC (rev 665) @@ -24,9 +24,10 @@ */ -import org.nuiton.util.ApplicationConfig; +import org.nuiton.config.ApplicationConfig; +import org.nuiton.config.ConfigOptionDef; -import static org.nuiton.i18n.I18n.n_; +import static org.nuiton.i18n.I18n.n; /** * Created: 18/06/12 @@ -66,33 +67,33 @@ return result; } - public enum AudioConfigOption implements ApplicationConfig.OptionDef { + public enum AudioConfigOption implements ConfigOptionDef { /** Sampel rate to record audio */ COMPRESSION( "sammoa.audio.compression", - n_("sammoa.config.audio.compression"), + n("sammoa.config.audio.compression"), "ULAW", String.class ), /** Sampel rate to record audio */ SAMPLE_RATE( "sammoa.audio.sampleRate", - n_("sammoa.config.audio.sampleRate"), + n("sammoa.config.audio.sampleRate"), "8000", Float.class ), /** Period time in seconds for each check of the gps to update location */ SAMPLE_SIZE_IN_BITS( "sammoa.audio.sampleSizeInBits", - n_("sammoa.config.audio.sampleSizeInBits"), + n("sammoa.config.audio.sampleSizeInBits"), "16", Integer.class ), /** Time in seconds between each record, this will record in multiple files */ RECORD_DELAY_IN_SECONDS( "sammoa.audio.recordDelayInSeconds", - n_("sammoa.config.audio.recordDelayInSeconds"), + n("sammoa.config.audio.recordDelayInSeconds"), "0", Integer.class ); Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioReader.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioReader.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioReader.java 2014-05-16 08:16:53 UTC (rev 665) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: Application - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioReaderMock.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioReaderMock.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/audio/AudioReaderMock.java 2014-05-16 08:16:53 UTC (rev 665) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: Application - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GPSNRSerialDevice.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GPSNRSerialDevice.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GPSNRSerialDevice.java 2014-05-16 08:16:53 UTC (rev 665) @@ -3,8 +3,8 @@ /* * #%L * SAMMOA :: Application - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsConfig.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsConfig.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsConfig.java 2014-05-16 08:16:53 UTC (rev 665) @@ -25,9 +25,10 @@ import com.google.common.base.Preconditions; -import org.nuiton.util.ApplicationConfig; +import org.nuiton.config.ApplicationConfig; +import org.nuiton.config.ConfigOptionDef; -import static org.nuiton.i18n.I18n.n_; +import static org.nuiton.i18n.I18n.n; /** * Created: 18/06/12 @@ -87,35 +88,35 @@ return result; } - public enum GpsConfigOption implements ApplicationConfig.OptionDef { + public enum GpsConfigOption implements ConfigOptionDef { /** Implementation class for GpsHandler */ GPS_HANDLER("sammoa.gps.handler", - n_("sammoa.config.gps.handler"), + n("sammoa.config.gps.handler"), GpsHandlerGpsylon.class.getName(), Class.class ), /** Period time in seconds for each check of the gps to update location */ GPS_CHECK_PERIOD("sammoa.gps.checkPeriod", - n_("sammoa.config.gps.check.period"), + n("sammoa.config.gps.check.period"), "2", Integer.class ), /** Time in seconds before timeout (ERROR, UNAVAILABLE) */ GPS_TIMEOUT("sammoa.gps.timeout", - n_("sammoa.config.gps.timeout"), + n("sammoa.config.gps.timeout"), "10", Integer.class ), /** GPS Device name ex: /dev/ttyUSB0 or /dev/ttyS1 or COM5 */ GPS_DEVICE("sammoa.gps.device", - n_("sammoa.config.gps.device"), + n("sammoa.config.gps.device"), "COM1", String.class ), /** GPS data speed */ GPS_SPEED("sammoa.gps.speed", - n_("sammoa.config.gps.speed"), + n("sammoa.config.gps.speed"), "4800", Integer.class ); Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/BaseFlightController.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/BaseFlightController.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/BaseFlightController.java 2014-05-16 08:16:53 UTC (rev 665) @@ -34,20 +34,18 @@ import fr.ulr.sammoa.application.io.FlightStorage; import fr.ulr.sammoa.persistence.Campaign; import fr.ulr.sammoa.persistence.Flight; -import fr.ulr.sammoa.persistence.FlightDAO; +import fr.ulr.sammoa.persistence.FlightTopiaDao; import fr.ulr.sammoa.persistence.GeoPoint; import fr.ulr.sammoa.persistence.Observation; -import fr.ulr.sammoa.persistence.ObservationDAO; import fr.ulr.sammoa.persistence.ObservationStatus; +import fr.ulr.sammoa.persistence.ObservationTopiaDao; import fr.ulr.sammoa.persistence.Position; import fr.ulr.sammoa.persistence.Route; import fr.ulr.sammoa.persistence.RouteType; import fr.ulr.sammoa.persistence.Routes; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.TransectFlight; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.TimeLog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -90,7 +88,7 @@ listeners = Sets.newHashSet(); } - protected abstract GeoPoint getLocation(TopiaContext tx) throws TopiaException; + protected abstract GeoPoint getLocation(SammoaTopiaPersistenceContext tx) throws TopiaException; @Override public void addFlightControllerListener(FlightControllerListener listener) { @@ -203,7 +201,7 @@ Preconditions.checkState( isWaiting(), "You can call start() only if flight is waiting (not started, not ended)"); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { GeoPoint geoPoint = getLocation(tx); @@ -228,7 +226,7 @@ state = FlightState.OFF_EFFORT; - tx.commitTransaction(); + tx.commit(); startTime = timeLog.log(startTime, "start()", "Commited"); @@ -240,7 +238,7 @@ timeLog.log(startTime, "start()", "Fired"); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(tx); @@ -360,7 +358,7 @@ "You can't call begin() if no transect is selected or if it is " + "deleted. Call setNextTransect() method first"); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { GeoPoint geoPoint = getLocation(tx); @@ -383,7 +381,7 @@ state = FlightState.ON_EFFORT; - tx.commitTransaction(); + tx.commit(); startTime = timeLog.log(startTime, "begin()", "Commited"); @@ -396,7 +394,7 @@ timeLog.log(startTime, "begin()", "Fired"); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(tx); @@ -417,7 +415,7 @@ "You can't call circleBack() during TRANSIT"); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { GeoPoint geoPoint = getLocation(tx); @@ -437,7 +435,7 @@ state = FlightState.OFF_EFFORT; - tx.commitTransaction(); + tx.commit(); startTime = timeLog.log(startTime, "circleBack()", "Commited"); @@ -449,7 +447,7 @@ timeLog.log(startTime, "circleBack()", "Fired"); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(tx); @@ -467,7 +465,7 @@ Preconditions.checkState( isOnEffort(), "You can call add() only if flight is on effort (started, not ended, on effort)"); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { GeoPoint geoPoint = getLocation(tx); @@ -481,7 +479,7 @@ Route previousRoute = currentRoute; currentRoute = service.createLeg(tx, flight, currentDate, previousRoute, currentTransect); - tx.commitTransaction(); + tx.commit(); startTime = timeLog.log(startTime, "add()", "Commited"); @@ -491,7 +489,7 @@ timeLog.log(startTime, "add()", "Fired"); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(tx); @@ -523,7 +521,7 @@ Preconditions.checkState( isRunning(), "You can call observation() only if flight is running (started, not ended)"); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { GeoPoint geoPoint = getLocation(tx); @@ -538,7 +536,7 @@ } Observation observation = service.createObservation(tx, flight, currentDate, position); - tx.commitTransaction(); + tx.commit(); startTime = timeLog.log(startTime, "observation()", "Commited"); @@ -546,9 +544,6 @@ timeLog.log(startTime, "observation()", "Fired"); - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } finally { endTransaction(tx); } @@ -565,7 +560,7 @@ Preconditions.checkState( isOnEffort(), "You can call end() only if flight is on effort (started, not ended, on effort)"); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { GeoPoint geoPoint = getLocation(tx); @@ -584,7 +579,7 @@ state = FlightState.OFF_EFFORT; - tx.commitTransaction(); + tx.commit(); // Fire events after commit onRouteAdded(previousRoute, currentRoute); @@ -593,7 +588,7 @@ onStateChanged(state); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(tx); @@ -613,7 +608,7 @@ Preconditions.checkState( isOffEffort() && flight.getEndDate() == null, "You can call stop() only if flight is running (started, not ended, not on effort)"); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { GeoPoint geoPoint = getLocation(tx); @@ -634,7 +629,7 @@ state = FlightState.ENDED; - tx.commitTransaction(); + tx.commit(); startTime = timeLog.log(startTime, "stop()", "Commited"); @@ -646,7 +641,7 @@ timeLog.log(startTime, "stop()", "Fired"); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(tx); @@ -659,33 +654,32 @@ persistence.stopAutoSaveListener(); } - protected void setFlightBeginDate(TopiaContext tx, + protected void setFlightBeginDate(SammoaTopiaPersistenceContext tx, Flight flight, Date beginDate) throws TopiaException { - FlightDAO flightDAO = SammoaDAOHelper.getFlightDAO(tx); + FlightTopiaDao flightDAO = tx.getFlightDao(); flight.setBeginDate(beginDate); flightDAO.update(flight); } - protected void setFlightEndDate(TopiaContext tx, + protected void setFlightEndDate(SammoaTopiaPersistenceContext tx, Flight flight, Date endDate) throws TopiaException { - FlightDAO flightDAO = SammoaDAOHelper.getFlightDAO(tx); + FlightTopiaDao flightDAO = tx.getFlightDao(); flight.setEndDate(endDate); flightDAO.update(flight); } - protected void setObservationStatus(TopiaContext tx, + protected void setObservationStatus(SammoaTopiaPersistenceContext tx, Observation observation, ObservationStatus status) throws TopiaException { - ObservationDAO observationDAO = - SammoaDAOHelper.getObservationDAO(tx); + ObservationTopiaDao observationDAO = tx.getObservationDao(); observation.setObservationStatus(status); observationDAO.update(observation); } Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerOnBoard.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerOnBoard.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerOnBoard.java 2014-05-16 08:16:53 UTC (rev 665) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: Application - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -35,10 +35,9 @@ import fr.ulr.sammoa.persistence.GeoPoint; import fr.ulr.sammoa.persistence.GeoPoints; import fr.ulr.sammoa.persistence.RouteType; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.TransectFlight; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -131,7 +130,7 @@ } @Override - protected GeoPoint getLocation(TopiaContext tx) throws TopiaException { + protected GeoPoint getLocation(SammoaTopiaPersistenceContext tx) throws TopiaException { GeoPoint gpsLocation = getGpsHandler().getCurrentLocation(); GeoPoint result = geoPoints.get(gpsLocation.getRecordTime()); if (result == null) { @@ -139,7 +138,7 @@ if (logger.isDebugEnabled()) { logger.debug("Create a GeoPoint {}", gpsLocation); } - result = SammoaDAOHelper.getGeoPointDAO(tx).create(gpsLocation); + result = tx.getGeoPointDao().create(gpsLocation); geoPoints.put(result.getRecordTime(), result); } return result; Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerValidation.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerValidation.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerValidation.java 2014-05-16 08:16:53 UTC (rev 665) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: Application - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -32,11 +32,11 @@ import fr.ulr.sammoa.persistence.GeoPoint; import fr.ulr.sammoa.persistence.Route; import fr.ulr.sammoa.persistence.Routes; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.TransectFlight; import fr.ulr.sammoa.persistence.TransectFlights; import org.joda.time.DateTime; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,7 +77,7 @@ } @Override - protected GeoPoint getLocation(TopiaContext tx) throws TopiaException { + protected GeoPoint getLocation(SammoaTopiaPersistenceContext tx) throws TopiaException { Preconditions.checkNotNull(currentRoute, "You must set the current route to retrieve location"); Preconditions.checkState(!geoPoints.isEmpty(), "No geoPoints available"); Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2014-05-16 08:16:53 UTC (rev 665) @@ -36,7 +36,7 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.DirectoryFileFilter; import org.apache.commons.lang3.builder.ToStringBuilder; -import org.nuiton.util.decorator.Decorator; +import org.nuiton.decorator.Decorator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java 2014-05-16 08:16:53 UTC (rev 665) @@ -31,7 +31,7 @@ import fr.ulr.sammoa.persistence.Region; import fr.ulr.sammoa.persistence.TransectFlight; import org.apache.commons.lang3.builder.ToStringBuilder; -import org.nuiton.util.decorator.Decorator; +import org.nuiton.decorator.Decorator; import java.io.File; import java.util.Map; Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationService.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationService.java 2014-05-16 08:16:53 UTC (rev 665) @@ -41,15 +41,15 @@ import fr.ulr.sammoa.persistence.Campaign; import fr.ulr.sammoa.persistence.SammoaDbMeta; import fr.ulr.sammoa.persistence.SammoaEntityEnum; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import org.apache.commons.io.Charsets; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.DirectoryFileFilter; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.csv.in.TopiaCsvImports; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.MetaFilenameAware; import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.service.csv.in.TopiaCsvImports; import org.nuiton.util.TimeLog; import org.nuiton.util.ZipUtil; import org.slf4j.Logger; @@ -138,7 +138,7 @@ protected void importDb(ImportApplicationModel model) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext sammoaTopiaPersistenceContext = beginTransaction(); try { @@ -152,11 +152,11 @@ Iterable<String> flightToRemoveIds = model.getFlightToRemoveIds(); for (String flightId : flightToRemoveIds) { - flightService.deleteFlightInDb(tx, flightId); + flightService.deleteFlightInDb(sammoaTopiaPersistenceContext, flightId); } } - persistence.flushTransaction(tx); + persistence.flushTransaction(sammoaTopiaPersistenceContext); startTime = timeLog.log(startTime, "importDb", "after flights delete"); @@ -176,23 +176,23 @@ SammoaImportModelFactory modelFactory = new SammoaImportModelFactory(config.getCsvSeparator(), - tx, + sammoaTopiaPersistenceContext, dbMetas); try { - importReferentials(tx, modelFactory, tableMap); + importReferentials(sammoaTopiaPersistenceContext, modelFactory, tableMap); startTime = timeLog.log(startTime, "importDb", "after referential import"); DataImportStrategy strategy = new DataImportStrategy( - modelFactory, tx, persistence.getPersistenceHelper() + modelFactory, sammoaTopiaPersistenceContext, persistence.getPersistenceHelper() ); for (String flightId : model.getFlightIds()) { FlightStorage flightStorage = storage.getFlightStorage(flightId); - importFlight(tx, + importFlight(sammoaTopiaPersistenceContext, dbMetas, strategy, flightStorage); @@ -201,7 +201,7 @@ modelFactory.close(); } - tx.commitTransaction(); + sammoaTopiaPersistenceContext.commit(); timeLog.log(startTime, "importDb", "after data import"); @@ -210,11 +210,11 @@ } catch (IOException e) { throw new SammoaTechnicalException("Could not import", e); } finally { - endTransaction(tx); + endTransaction(sammoaTopiaPersistenceContext); } } - private void importFlight(TopiaContext tx, + private void importFlight(SammoaTopiaPersistenceContext tx, SammoaDbMeta dbMetas, DataImportStrategy strategy, FlightStorage storage) throws IOException, TopiaException { @@ -256,7 +256,7 @@ } } - private void importReferentials(TopiaContext tx, + private void importReferentials(SammoaTopiaPersistenceContext tx, SammoaImportModelFactory modelFactory, Map<TableMeta<SammoaEntityEnum>, File> tableMap) throws IOException, TopiaException { Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/SammoaImportModelFactory.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/SammoaImportModelFactory.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/SammoaImportModelFactory.java 2014-05-16 08:16:53 UTC (rev 665) @@ -26,19 +26,18 @@ import com.google.common.collect.Maps; import fr.ulr.sammoa.persistence.SammoaDbMeta; import fr.ulr.sammoa.persistence.SammoaEntityEnum; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; +import org.nuiton.csv.Import; +import org.nuiton.csv.ImportModel; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.EntityCsvModel; -import org.nuiton.topia.persistence.csv.TopiaCsvCommons; -import org.nuiton.topia.persistence.csv.in.EntityAssociationImportModel; -import org.nuiton.topia.persistence.csv.in.ImportModelFactory; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.ColumnMeta; import org.nuiton.topia.persistence.metadata.TableMeta; -import org.nuiton.util.csv.Import; -import org.nuiton.util.csv.ImportModel; +import org.nuiton.topia.service.csv.EntityCsvModel; +import org.nuiton.topia.service.csv.TopiaCsvCommons; +import org.nuiton.topia.service.csv.in.EntityAssociationImportModel; +import org.nuiton.topia.service.csv.in.ImportModelFactory; import java.io.Reader; import java.util.Date; @@ -57,12 +56,12 @@ private final Map<SammoaEntityEnum, Map<String, TopiaEntity>> universe; - private final TopiaContext tx; + private final SammoaTopiaPersistenceContext tx; private final SammoaDbMeta dbMetas; SammoaImportModelFactory(char csvSeparator, - TopiaContext tx, + SammoaTopiaPersistenceContext tx, SammoaDbMeta dbMetas) { this.dbMetas = dbMetas; this.universe = Maps.newTreeMap(); @@ -86,7 +85,7 @@ EntityCsvModel<SammoaEntityEnum, E> model = EntityCsvModel.newModel( csvSeparator, meta, - TopiaEntity.TOPIA_ID + TopiaEntity.PROPERTY_TOPIA_ID ); for (ColumnMeta columnMeta : meta) { @@ -115,10 +114,10 @@ // foreign keys on data are always coming from db try { - List<TopiaEntity> entities = dbMetas.getPersistenceHelper().getDAO(tx, entityType).findAll(); + List<TopiaEntity> entities = tx.getDao(entityType).findAll(); model.addForeignKeyForImport(propertyName, entityType, entities); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } } } Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/AbstractImportStrategy.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/AbstractImportStrategy.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/AbstractImportStrategy.java 2014-05-16 08:16:53 UTC (rev 665) @@ -26,16 +26,16 @@ import fr.ulr.sammoa.application.io.input.application.SammoaImportModelFactory; import fr.ulr.sammoa.persistence.SammoaEntityEnum; import fr.ulr.sammoa.persistence.SammoaPersistenceHelper; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; +import org.nuiton.csv.Import; +import org.nuiton.csv.ImportToMap; +import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.in.CsvImportResult; -import org.nuiton.topia.persistence.csv.in.ImportStrategy; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.TableMeta; -import org.nuiton.util.csv.Import; -import org.nuiton.util.csv.ImportToMap; +import org.nuiton.topia.service.csv.in.CsvImportResult; +import org.nuiton.topia.service.csv.in.ImportStrategy; /** * Base import stragey for sammo application import. @@ -45,14 +45,14 @@ */ abstract class AbstractImportStrategy implements ImportStrategy<SammoaEntityEnum> { - private final TopiaContext tx; + private final SammoaTopiaPersistenceContext tx; private final SammoaPersistenceHelper persistenceHelper; private final SammoaImportModelFactory modelFactory; AbstractImportStrategy(SammoaImportModelFactory modelFactory, - TopiaContext tx, + SammoaTopiaPersistenceContext tx, SammoaPersistenceHelper persistenceHelper) { this.tx = tx; this.persistenceHelper = persistenceHelper; @@ -84,16 +84,16 @@ throw new UnsupportedOperationException(); } - protected TopiaContext getTx() { + protected SammoaTopiaPersistenceContext getTx() { return tx; } - protected <E extends TopiaEntity> TopiaDAO<E> getDAO(SammoaEntityEnum type) { - return persistenceHelper.getDAO(tx, type); + protected <E extends TopiaEntity> TopiaDao<? extends TopiaEntity> getDAO(SammoaEntityEnum type) { + return tx.getDao(type.getContract()); } protected void flushTransaction() throws TopiaException { - persistenceHelper.flushTransaction(tx); + tx.getHibernateSupport().getHibernateSession().flush();; } } Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/DataImportStrategy.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/DataImportStrategy.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/DataImportStrategy.java 2014-05-16 08:16:53 UTC (rev 665) @@ -24,21 +24,20 @@ */ import fr.ulr.sammoa.application.io.input.application.SammoaImportModelFactory; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; import fr.ulr.sammoa.persistence.SammoaEntityEnum; import fr.ulr.sammoa.persistence.SammoaPersistenceHelper; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.TransectFlight; -import fr.ulr.sammoa.persistence.TransectFlightDAO; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; +import fr.ulr.sammoa.persistence.TransectFlightTopiaDao; +import org.nuiton.csv.Import; +import org.nuiton.csv.ImportToMap; +import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.in.CsvImportResult; -import org.nuiton.topia.persistence.csv.in.TopiaCsvImports; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.TableMeta; -import org.nuiton.util.csv.Import; -import org.nuiton.util.csv.ImportToMap; +import org.nuiton.topia.service.csv.in.CsvImportResult; +import org.nuiton.topia.service.csv.in.TopiaCsvImports; import java.util.Map; @@ -51,7 +50,7 @@ public class DataImportStrategy extends AbstractImportStrategy { public DataImportStrategy(SammoaImportModelFactory modelFactory, - TopiaContext tx, + SammoaTopiaPersistenceContext tx, SammoaPersistenceHelper persistenceHelper) { super(modelFactory, tx, persistenceHelper); } @@ -62,11 +61,11 @@ if (meta.getSource() != SammoaEntityEnum.TransectFlight) { - TopiaDAO<E> dao = getDAO(meta.getSource()); + TopiaDao dao = getDAO(meta.getSource()); TopiaCsvImports.importAllEntities(dao, meta, importer, csvResult); } else { - TransectFlightDAO dao = SammoaDAOHelper.getTransectFlightDAO(getTx()); + TransectFlightTopiaDao dao = getTx().getTransectFlightDao(); // import transect flights Iterable<TransectFlight> transectFlights = @@ -99,14 +98,14 @@ getModelFactory().getUniverse().get(target); if (nmAssociationMeta) { - TopiaCsvImports.importNMAssociation(getTx(), + TopiaCsvImports.importNMAssociation(getTx().getSqlSupport(), meta, targetUniverse, importer, csvResult, 1000); } else { - TopiaCsvImports.importAssociation(getTx(), + TopiaCsvImports.importAssociation(getTx().getSqlSupport(), meta, targetUniverse, importer, @@ -117,13 +116,13 @@ } else { if (nmAssociationMeta) { - TopiaCsvImports.importNMAssociation(getTx(), + TopiaCsvImports.importNMAssociation(getTx().getSqlSupport(), meta, importer, csvResult, 1000); } else { - TopiaCsvImports.importAssociation(getTx(), + TopiaCsvImports.importAssociation(getTx().getSqlSupport(), meta, importer, csvResult, Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/ReferentialImportStrategy.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/ReferentialImportStrategy.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/strategy/ReferentialImportStrategy.java 2014-05-16 08:16:53 UTC (rev 665) @@ -27,14 +27,14 @@ import fr.ulr.sammoa.application.io.input.application.SammoaImportModelFactory; import fr.ulr.sammoa.persistence.SammoaEntityEnum; import fr.ulr.sammoa.persistence.SammoaPersistenceHelper; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; +import org.nuiton.csv.Import; +import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.in.CsvImportResult; -import org.nuiton.topia.persistence.csv.in.TopiaCsvImports; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.TableMeta; -import org.nuiton.util.csv.Import; +import org.nuiton.topia.service.csv.in.CsvImportResult; +import org.nuiton.topia.service.csv.in.TopiaCsvImports; import java.util.Map; @@ -50,7 +50,7 @@ public class ReferentialImportStrategy extends AbstractImportStrategy { public ReferentialImportStrategy(SammoaImportModelFactory modelFactory, - TopiaContext tx, + SammoaTopiaPersistenceContext tx, SammoaPersistenceHelper persistenceHelper) { super(modelFactory, tx, persistenceHelper); } @@ -58,7 +58,7 @@ @Override public <E extends TopiaEntity> void importTable(TableMeta<SammoaEntityEnum> meta, Import<E> importer, CsvImportResult<SammoaEntityEnum> csvResult) throws TopiaException { - TopiaDAO<E> dao = getDAO(meta.getSource()); + TopiaDao dao = getDAO(meta.getSource()); SammoaEntityEnum entityEnum = meta.getSource(); @@ -69,10 +69,10 @@ getModelFactory().getUniverse().put(entityEnum, universe); TopiaCsvImports.importNotExistingEntities(dao, - meta, - universe, - importer, - csvResult); + meta, + universe, + importer, + csvResult); } } Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvService.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvService.java 2014-05-16 08:16:53 UTC (rev 665) @@ -27,20 +27,18 @@ import com.google.common.io.Files; import fr.ulr.sammoa.application.SammoaServiceSupport; import fr.ulr.sammoa.persistence.Campaign; -import fr.ulr.sammoa.persistence.CampaignDAO; +import fr.ulr.sammoa.persistence.CampaignTopiaDao; import fr.ulr.sammoa.persistence.Observer; -import fr.ulr.sammoa.persistence.ObserverDAO; +import fr.ulr.sammoa.persistence.ObserverTopiaDao; import fr.ulr.sammoa.persistence.Region; -import fr.ulr.sammoa.persistence.RegionDAO; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; +import fr.ulr.sammoa.persistence.RegionTopiaDao; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.Species; -import fr.ulr.sammoa.persistence.SpeciesDAO; +import fr.ulr.sammoa.persistence.SpeciesTopiaDao; import org.apache.commons.io.Charsets; import org.apache.commons.io.IOUtils; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; -import org.nuiton.util.csv.Import; +import org.nuiton.csv.Import; +import org.nuiton.topia.persistence.TopiaException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,15 +63,15 @@ try { int result = 0; - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - RegionDAO regionDAO = SammoaDAOHelper.getRegionDAO(transaction); + RegionTopiaDao regionDAO = transaction.getRegionDao(); Region region = regionDAO.findByTopiaId(regionId); Preconditions.checkNotNull(region); String regionCode = region.getCode(); - SpeciesDAO dao = SammoaDAOHelper.getSpeciesDAO(transaction); + SpeciesTopiaDao dao = transaction.getSpeciesDao(); SpeciesImportModel model = new SpeciesImportModel(region); @@ -88,10 +86,10 @@ } } - transaction.commitTransaction(); + transaction.commit(); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); @@ -109,15 +107,15 @@ try { int result = 0; - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - CampaignDAO campaignDAO = SammoaDAOHelper.getCampaignDAO(transaction); + CampaignTopiaDao campaignDAO = transaction.getCampaignDao(); Campaign campaign = campaignDAO.findByTopiaId(campaignId); Preconditions.checkNotNull(campaign); String campaignCode = campaign.getCode(); - ObserverDAO dao = SammoaDAOHelper.getObserverDAO(transaction); + ObserverTopiaDao dao = transaction.getObserverDao(); ObserverImportModel model = new ObserverImportModel(campaign); @@ -132,10 +130,10 @@ } } - transaction.commitTransaction(); + transaction.commit(); } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); @@ -147,7 +145,7 @@ } } - protected boolean importSpecies(SpeciesDAO dao, + protected boolean importSpecies(SpeciesTopiaDao dao, Species species, String regionCode) throws TopiaException { // while importing a species, it does become valid @@ -189,7 +187,7 @@ return newSpecies; } - protected boolean importObserver(ObserverDAO dao, + protected boolean importObserver(ObserverTopiaDao dao, Observer observer, String campaignCode) throws TopiaException { boolean newEntity = false; Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ObserverImportModel.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ObserverImportModel.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ObserverImportModel.java 2014-05-16 08:16:53 UTC (rev 665) @@ -27,9 +27,9 @@ import fr.ulr.sammoa.persistence.Campaign; import fr.ulr.sammoa.persistence.Observer; import fr.ulr.sammoa.persistence.ObserverImpl; -import org.nuiton.util.csv.Common; -import org.nuiton.util.csv.ValueParser; -import org.nuiton.util.csv.ext.AbstractImportModel; +import org.nuiton.csv.Common; +import org.nuiton.csv.ValueParser; +import org.nuiton.csv.ext.AbstractImportModel; import java.text.ParseException; Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/SpeciesImportModel.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/SpeciesImportModel.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/SpeciesImportModel.java 2014-05-16 08:16:53 UTC (rev 665) @@ -27,8 +27,8 @@ import fr.ulr.sammoa.persistence.Region; import fr.ulr.sammoa.persistence.Species; import fr.ulr.sammoa.persistence.SpeciesImpl; -import org.nuiton.util.csv.ValueParser; -import org.nuiton.util.csv.ext.AbstractImportModel; +import org.nuiton.csv.ValueParser; +import org.nuiton.csv.ext.AbstractImportModel; import java.text.ParseException; Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DbfImport.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DbfImport.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DbfImport.java 2014-05-16 08:16:53 UTC (rev 665) @@ -26,10 +26,10 @@ import com.bbn.openmap.dataAccess.shape.DbfTableModel; import com.google.common.base.Throwables; import com.google.common.collect.Lists; -import org.nuiton.util.csv.Import; -import org.nuiton.util.csv.ImportModel; -import org.nuiton.util.csv.ImportRuntimeException; -import org.nuiton.util.csv.ImportableColumn; +import org.nuiton.csv.Import; +import org.nuiton.csv.ImportModel; +import org.nuiton.csv.ImportRuntimeException; +import org.nuiton.csv.ImportableColumn; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,7 +39,7 @@ import java.util.Iterator; import java.util.List; -import static org.nuiton.i18n.I18n._; +import static org.nuiton.i18n.I18n.t; /** * Created: 25/07/12 @@ -92,7 +92,7 @@ } catch (Exception e) { throw new ImportRuntimeException( - _("sammoa.dbf.import.error.unableToReadField", + t("sammoa.dbf.import.error.unableToReadField", field.getHeaderName(), lineNumber), e); } } Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DoubleToIntegerValueParser.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DoubleToIntegerValueParser.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DoubleToIntegerValueParser.java 2014-05-16 08:16:53 UTC (rev 665) @@ -23,8 +23,9 @@ * #L% */ -import org.nuiton.util.csv.ValueParser; +import org.nuiton.csv.ValueParser; + import java.text.ParseException; /** Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java 2014-05-16 08:16:53 UTC (rev 665) @@ -27,21 +27,19 @@ import com.google.common.collect.Maps; import fr.ulr.sammoa.application.SammoaServiceSupport; import fr.ulr.sammoa.persistence.Campaign; -import fr.ulr.sammoa.persistence.CampaignDAO; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; +import fr.ulr.sammoa.persistence.CampaignTopiaDao; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.Sector; -import fr.ulr.sammoa.persistence.SectorDAO; +import fr.ulr.sammoa.persistence.SectorTopiaDao; import fr.ulr.sammoa.persistence.Sectors; import fr.ulr.sammoa.persistence.Strate; -import fr.ulr.sammoa.persistence.StrateDAO; +import fr.ulr.sammoa.persistence.StrateTopiaDao; import fr.ulr.sammoa.persistence.StrateType; import fr.ulr.sammoa.persistence.Strates; import fr.ulr.sammoa.persistence.Transect; -import fr.ulr.sammoa.persistence.TransectDAO; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; -import org.nuiton.util.csv.ImportRuntimeException; +import fr.ulr.sammoa.persistence.TransectTopiaDao; +import org.nuiton.csv.ImportRuntimeException; +import org.nuiton.topia.persistence.TopiaException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,19 +60,18 @@ public int importTransects(String campaignId, Iterable<Transect> transects) { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - CampaignDAO campaignDAO = - SammoaDAOHelper.getCampaignDAO(transaction); + CampaignTopiaDao campaignDAO = transaction.getCampaignDao(); Campaign campaign = campaignDAO.findByTopiaId(campaignId); Preconditions.checkArgument(campaign != null, "The topiaId : " + campaignId + " doesn't match any existing campaign"); - StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(transaction); - TransectDAO transectDAO = SammoaDAOHelper.getTransectDAO(transaction); + StrateTopiaDao strateDAO = transaction.getStrateDao(); + TransectTopiaDao transectDAO = transaction.getTransectDao(); // Retrieve directly all strates to avoid multiple select queries to find strates List<Strate> strates = strateDAO.findAllByCampaignOrderedByCode(campaign); @@ -94,11 +91,11 @@ index++; } - transaction.commitTransaction(); + transaction.commit(); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); @@ -107,22 +104,21 @@ public int importStrates(String campaignId, Iterable<Strate> strates) { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); try { - CampaignDAO campaignDAO = - SammoaDAOHelper.getCampaignDAO(transaction); + CampaignTopiaDao campaignDAO = transaction.getCampaignDao(); Campaign campaign = campaignDAO.findByTopiaId(campaignId); Preconditions.checkArgument(campaign != null, "The topiaId : " + campaignId + " doesn't match any existing campaign"); - StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(transaction); - SectorDAO sectorDAO = SammoaDAOHelper.getSectorDAO(transaction); + StrateTopiaDao strateDAO = transaction.getStrateDao(); + SectorTopiaDao sectorDAO = transaction.getSectorDao(); // Retrieve directly all sectors to avoid multiple select queries to find sectors - List<Sector> sectors = sectorDAO.findAllByCampaign(campaign); + List<Sector> sectors = sectorDAO.forCampaignEquals(campaign).findAll(); Map<Integer, Sector> sectorMap = Maps.newHashMap(Maps.uniqueIndex(sectors, Sectors.toSectorNumber())); @@ -137,18 +133,18 @@ } } - transaction.commitTransaction(); + transaction.commit(); return result; } catch (TopiaException e) { - throw new TopiaRuntimeException(e); + throw new TopiaException(e); } finally { endTransaction(transaction); } } - protected boolean importTransect(TransectDAO dao, + protected boolean importTransect(TransectTopiaDao dao, Transect transect, Map<String, Strate> strates, int rowIndex) throws TopiaException { @@ -213,8 +209,8 @@ return result; } - protected boolean importStrate(StrateDAO strateDAO, - SectorDAO sectorDAO, + protected boolean importStrate(StrateTopiaDao strateDAO, + SectorTopiaDao sectorDAO, Strate strate, Map<Integer, Sector> sectors, Campaign campaign) throws TopiaException { Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java 2014-05-16 08:16:53 UTC (rev 665) @@ -26,7 +26,7 @@ import com.google.common.io.Files; import fr.ulr.sammoa.application.io.CampaignStorage; import org.apache.commons.io.FileUtils; -import org.nuiton.util.csv.ImportModel; +import org.nuiton.csv.ImportModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/StrateImportModel.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/StrateImportModel.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/StrateImportModel.java 2014-05-16 08:16:53 UTC (rev 665) @@ -27,7 +27,7 @@ import fr.ulr.sammoa.persistence.SectorImpl; import fr.ulr.sammoa.persistence.Strate; import fr.ulr.sammoa.persistence.StrateImpl; -import org.nuiton.util.csv.ext.AbstractImportModel; +import org.nuiton.csv.ext.AbstractImportModel; /** * <pre> Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/StrateTypeValueParser.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/StrateTypeValueParser.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/StrateTypeValueParser.java 2014-05-16 08:16:53 UTC (rev 665) @@ -24,7 +24,7 @@ */ import fr.ulr.sammoa.persistence.StrateType; -import org.nuiton.util.csv.ValueParser; +import org.nuiton.csv.ValueParser; import java.text.ParseException; Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/TransectImportModel.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/TransectImportModel.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/TransectImportModel.java 2014-05-16 08:16:53 UTC (rev 665) @@ -29,8 +29,8 @@ import fr.ulr.sammoa.persistence.StrateImpl; import fr.ulr.sammoa.persistence.Transect; import fr.ulr.sammoa.persistence.TransectImpl; -import org.nuiton.util.csv.Common; -import org.nuiton.util.csv.ext.AbstractImportModel; +import org.nuiton.csv.Common; +import org.nuiton.csv.ext.AbstractImportModel; /** * <pre> Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/ExportApplicationService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/ExportApplicationService.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/ExportApplicationService.java 2014-05-16 08:16:53 UTC (rev 665) @@ -32,34 +32,31 @@ import fr.ulr.sammoa.application.io.FlightStorage; import fr.ulr.sammoa.application.io.SammoaStorages; import fr.ulr.sammoa.persistence.Campaign; -import fr.ulr.sammoa.persistence.CampaignDAO; +import fr.ulr.sammoa.persistence.CampaignTopiaDao; import fr.ulr.sammoa.persistence.Flight; -import fr.ulr.sammoa.persistence.FlightDAO; +import fr.ulr.sammoa.persistence.FlightTopiaDao; import fr.ulr.sammoa.persistence.GeoPoint; import fr.ulr.sammoa.persistence.Observation; import fr.ulr.sammoa.persistence.Route; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; import fr.ulr.sammoa.persistence.SammoaDbMeta; import fr.ulr.sammoa.persistence.SammoaEntityEnum; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.TransectFlight; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.tuple.Pair; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.csv.ExportModel; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.EntityCsvModel; -import org.nuiton.topia.persistence.csv.TopiaCsvCommons; -import org.nuiton.topia.persistence.csv.out.EntityAssociationExportModel; -import org.nuiton.topia.persistence.csv.out.ExportEntityVisitor; -import org.nuiton.topia.persistence.csv.out.ExportModelFactory; -import org.nuiton.topia.persistence.csv.out.TopiaCsvExports; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.ColumnMeta; import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.service.csv.EntityCsvModel; +import org.nuiton.topia.service.csv.TopiaCsvCommons; +import org.nuiton.topia.service.csv.out.EntityAssociationExportModel; +import org.nuiton.topia.service.csv.out.ExportEntityVisitor; +import org.nuiton.topia.service.csv.out.ExportModelFactory; +import org.nuiton.topia.service.csv.out.TopiaCsvExports; import org.nuiton.util.TimeLog; -import org.nuiton.util.ZipUtil; -import org.nuiton.util.csv.ExportModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -91,7 +88,7 @@ EntityCsvModel<SammoaEntityEnum, E> model = EntityCsvModel.newModel(config.getCsvSeparator(), meta, - TopiaEntity.TOPIA_ID); + TopiaEntity.PROPERTY_TOPIA_ID); for (ColumnMeta columnMeta : meta) { @@ -172,7 +169,7 @@ startTime = TIME_LOG.log(startTime, "exportApplication", "after create Storage structure"); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { exportReferential(tx, targetStorage); @@ -202,13 +199,13 @@ private void fillAndSaveStorageProperties(CampaignStorage storage) { - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { DecoratorService decoratorService = getService(DecoratorService.class); - CampaignDAO campaignDAO = SammoaDAOHelper.getCampaignDAO(tx); - FlightDAO flightDAO = SammoaDAOHelper.getFlightDAO(tx); + CampaignTopiaDao campaignDAO = tx.getCampaignDao(); + FlightTopiaDao flightDAO = tx.getFlightDao(); Campaign campaign = campaignDAO.findByTopiaId(storage.getId()); @@ -230,7 +227,7 @@ } } - protected void exportReferential(TopiaContext tx, CampaignStorage storage) throws IOException { + protected void exportReferential(SammoaTopiaPersistenceContext tx, CampaignStorage storage) throws IOException { File csvDirectory = storage.getCsvDirectory(); @@ -252,13 +249,13 @@ } TopiaCsvExports.exportData(tableMeta, - defaultExportModelFactory, - prepareDataForExport, - entryFile); + defaultExportModelFactory, + prepareDataForExport, + entryFile); } } - protected void exportFlightData(TopiaContext tx, + protected void exportFlightData(SammoaTopiaPersistenceContext tx, FlightStorage storage, String flightId) throws IOException, TopiaException { @@ -284,7 +281,7 @@ try { Flight flight = flightService.getFlight(tx, flightId); - attachIndexInFlight(tx, flight); + attachIndexInFlight(flight); exportVisitor.export(flight); List<GeoPoint> geoPoints = @@ -303,21 +300,12 @@ } } - protected void attachIndexInFlight(TopiaContext tx, - Flight flight) throws TopiaException { + protected void attachIndexInFlight(Flight flight) { - FlightDAO flightDAO = SammoaDAOHelper.getFlightDAO(tx); - - List<Pair<String, Integer>> map = flightDAO.findAllIndexInFlight(flight); - for (Pair<String, Integer> entry : map) { - - String transectFLightId = entry.getKey(); - Integer indexInFlight = entry.getValue(); - - TransectFlight transectFlight = - flight.getTransectFlightByTopiaId(transectFLightId); - Preconditions.checkNotNull(transectFlight); + int indexInFlight = 0; + for (TransectFlight transectFlight : flight.getTransectFlight()){ transectFlight.setIndexInFlight(indexInFlight); + indexInFlight++; } } Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/SammoaPrepareDataForExport.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/SammoaPrepareDataForExport.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/SammoaPrepareDataForExport.java 2014-05-16 08:16:53 UTC (rev 665) @@ -23,17 +23,18 @@ * #L% */ +import com.google.common.collect.ImmutableMap; import fr.ulr.sammoa.application.SammoaTechnicalException; import fr.ulr.sammoa.persistence.SammoaEntityEnum; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import org.apache.commons.lang3.StringUtils; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.out.PrepareDataForExport; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.DbMeta; import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.service.csv.out.PrepareDataForExport; import java.util.List; @@ -47,9 +48,9 @@ protected final DbMeta<SammoaEntityEnum> dbMetas; - protected final TopiaContext tx; + protected final SammoaTopiaPersistenceContext tx; - public SammoaPrepareDataForExport(DbMeta<SammoaEntityEnum> dbMetas, TopiaContext tx) { + public SammoaPrepareDataForExport(DbMeta<SammoaEntityEnum> dbMetas, SammoaTopiaPersistenceContext tx) { this.dbMetas = dbMetas; this.tx = tx; } @@ -66,13 +67,13 @@ return getEntities(tx, tableMeta, "size(e." + associationMeta.getName() + ") > 0"); } - protected <E extends TopiaEntity> List<E> getEntities(TopiaContext tx, + protected <E extends TopiaEntity> List<E> getEntities(SammoaTopiaPersistenceContext tx, TableMeta<SammoaEntityEnum> tableMeta, String extraWhereQuery) { SammoaEntityEnum entityEnum = tableMeta.getSource(); try { - TopiaDAO<E> dao = dbMetas.getPersistenceHelper().getDAO(tx, entityEnum); + TopiaDao dao = tx.getDao(entityEnum.getContract()); // first query to count datas @@ -82,7 +83,10 @@ hql += " WHERE " + extraWhereQuery; } - List<E> result = dao.findAllByQuery(hql); + ImmutableMap <String, Object> parameters = ImmutableMap.of(); + + List<E> result = tx.getJpaSupport().findAll(hql, parameters); + return result; } catch (TopiaException eee) { throw new SammoaTechnicalException("Could not obtain data", eee); Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java 2014-05-16 08:16:53 UTC (rev 665) @@ -48,13 +48,13 @@ import fr.ulr.sammoa.persistence.Route; import fr.ulr.sammoa.persistence.RouteType; import fr.ulr.sammoa.persistence.Routes; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.Species; import fr.ulr.sammoa.persistence.Strate; import fr.ulr.sammoa.persistence.Transect; import fr.ulr.sammoa.persistence.TransectFlight; import org.joda.time.DateTime; import org.joda.time.Interval; -import org.nuiton.topia.TopiaContext; import org.nuiton.util.FileUtil; import org.nuiton.util.TimeLog; import org.slf4j.Logger; @@ -150,7 +150,7 @@ List<RouteType> routeTypes = dataModel.getRouteTypes(); List<Strate> strates = dataModel.getStrates(); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { // get flights for campaign (and between begin - end date) @@ -373,7 +373,7 @@ List<RouteType> routeTypes = dataModel.getRouteTypes(); List<Strate> strates = dataModel.getStrates(); - TopiaContext tx = beginTransaction(); + SammoaTopiaPersistenceContext tx = beginTransaction(); try { FlightService flightService = getService(FlightService.class); Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java =================================================================== --- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java 2014-05-16 08:16:53 UTC (rev 665) @@ -26,26 +26,24 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; -import fr.ulr.sammoa.application.SammoaDatabase; import fr.ulr.sammoa.persistence.Campaign; import fr.ulr.sammoa.persistence.Flight; import fr.ulr.sammoa.persistence.Observer; -import fr.ulr.sammoa.persistence.ObserverDAO; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; +import fr.ulr.sammoa.persistence.ObserverTopiaDao; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import fr.ulr.sammoa.persistence.Sector; -import fr.ulr.sammoa.persistence.SectorDAO; +import fr.ulr.sammoa.persistence.SectorTopiaDao; import fr.ulr.sammoa.persistence.Strate; -import fr.ulr.sammoa.persistence.StrateDAO; +import fr.ulr.sammoa.persistence.StrateTopiaDao; import fr.ulr.sammoa.persistence.StrateType; import fr.ulr.sammoa.persistence.Transect; -import fr.ulr.sammoa.persistence.TransectDAO; import fr.ulr.sammoa.persistence.TransectFlight; +import fr.ulr.sammoa.persistence.TransectTopiaDao; import org.junit.After; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.List; import java.util.Map; @@ -295,9 +293,8 @@ // Check that 6 transectFlight are attached to the transect // but one is deleted { - TopiaContext tx = database.beginTransaction(); - Map<Transect, Long> map = SammoaDAOHelper.getTransectFlightDAO(tx). - countAllByTransect(); + SammoaTopiaPersistenceContext tx = database.beginTransaction(); + Map<Transect, Long> map = tx.getTransectFlightDao().countAllByTransect(null); Assert.assertEquals(new Long(6), map.get(transect)); } // 6th crossing on flight 1 marked as 1st one (strange but not forbidden) @@ -320,12 +317,12 @@ protected Observer createObserver(String initials, Campaign campaign) throws TopiaException { - TopiaContext transaction = database.beginTransaction(); + SammoaTopiaPersistenceContext transaction = database.beginTransaction(); - ObserverDAO observerDAO = SammoaDAOHelper.getObserverDAO(transaction); + ObserverTopiaDao observerDAO = transaction.getObserverDao(); Observer result = observerDAO.createByNaturalId(initials, campaign); - transaction.commitTransaction(); + transaction.commit(); database.endTransaction(transaction); return result; @@ -333,12 +330,12 @@ protected Transect createTransect(String name, Strate strate) throws TopiaException { - TopiaContext transaction = database.beginTransaction(); + SammoaTopiaPersistenceContext transaction = database.beginTransaction(); - TransectDAO transectDAO = SammoaDAOHelper.getTransectDAO(transaction); + TransectTopiaDao transectDAO = transaction.getTransectDao(); Transect result = transectDAO.createByNaturalId(name, strate); - transaction.commitTransaction(); + transaction.commit(); database.endTransaction(transaction); return result; @@ -346,16 +343,16 @@ protected Strate createStrate(Campaign campaign, int sectorNumber, StrateType strateType) throws TopiaException { - TopiaContext transaction = database.beginTransaction(); + SammoaTopiaPersistenceContext transaction = database.beginTransaction(); - SectorDAO sectorDAO = SammoaDAOHelper.getSectorDAO(transaction); + SectorTopiaDao sectorDAO = transaction.getSectorDao(); Sector sector = sectorDAO.createByNaturalId(sectorNumber, campaign); - StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(transaction); + StrateTopiaDao strateDAO = transaction.getStrateDao(); Strate result = strateDAO.createByNaturalId(strateType, sector); - transaction.commitTransaction(); + transaction.commit(); database.endTransaction(transaction); return result; Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/SammoaConfigMock.java =================================================================== --- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/SammoaConfigMock.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/SammoaConfigMock.java 2014-05-16 08:16:53 UTC (rev 665) @@ -3,8 +3,8 @@ /* * #%L * SAMMOA :: Application - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/SammoaDatabase.java =================================================================== --- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/SammoaDatabase.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/SammoaDatabase.java 2014-05-16 08:16:53 UTC (rev 665) @@ -26,19 +26,19 @@ import com.google.common.base.Throwables; import fr.ulr.sammoa.persistence.Campaign; -import fr.ulr.sammoa.persistence.CampaignDAO; +import fr.ulr.sammoa.persistence.CampaignTopiaDao; import fr.ulr.sammoa.persistence.PersistenceException; import fr.ulr.sammoa.persistence.Region; -import fr.ulr.sammoa.persistence.RegionDAO; -import fr.ulr.sammoa.persistence.SammoaDAOHelper; +import fr.ulr.sammoa.persistence.RegionTopiaDao; import fr.ulr.sammoa.persistence.SammoaPersistence; +import fr.ulr.sammoa.persistence.SammoaTopiaApplicationContext; +import fr.ulr.sammoa.persistence.SammoaTopiaPersistenceContext; import org.apache.commons.lang3.StringUtils; import org.junit.rules.TestWatcher; import org.junit.runner.Description; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaContextFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaConfigurationConstants; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,7 +69,7 @@ protected Properties dbConfiguration; - protected TopiaContext rootCtxt; + protected SammoaTopiaApplicationContext rootCtxt; protected Description description; @@ -90,7 +90,7 @@ * @since 3.0 */ protected Class<? extends TopiaEntity>[] getImplementationClasses() { - return SammoaDAOHelper.getImplementationClasses(); + return rootCtxt.getImplementationClasses(); } @Override @@ -124,11 +124,11 @@ } dbConfiguration.setProperty( - TopiaContextFactory.CONFIG_URL, jdbcUrl); + TopiaConfigurationConstants.CONFIG_URL, jdbcUrl); onDbConfigurationCreate(dbConfiguration, testBasedir, dbPath); - rootCtxt = TopiaContextFactory.getContext(dbConfiguration); + rootCtxt = new SammoaTopiaApplicationContext(dbConfiguration); onRootCtxtCreate(rootCtxt); @@ -163,15 +163,15 @@ } } - protected void onRootCtxtCreate(TopiaContext rootCtxt) { + protected void onRootCtxtCreate(SammoaTopiaApplicationContext rootCtxt) { persistence.setRootContext(rootCtxt); } - public TopiaContext beginTransaction() throws TopiaException { + public SammoaTopiaPersistenceContext beginTransaction() throws TopiaException { return persistence.beginTransaction(); } - public void endTransaction(TopiaContext transaction) { + public void endTransaction(SammoaTopiaPersistenceContext transaction) { persistence.endTransaction(transaction); } @@ -181,15 +181,15 @@ public Campaign createCampaign(String code, String regionCode) throws TopiaException { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); - RegionDAO regionDAO = SammoaDAOHelper.getRegionDAO(transaction); + RegionTopiaDao regionDAO = transaction.getRegionDao(); Region region = regionDAO.createByNaturalId(regionCode); - CampaignDAO campaignDAO = SammoaDAOHelper.getCampaignDAO(transaction); + CampaignTopiaDao campaignDAO = transaction.getCampaignDao(); Campaign result = campaignDAO.createByNaturalId(code, region); - transaction.commitTransaction(); + transaction.commit(); endTransaction(transaction); return result; @@ -199,7 +199,7 @@ return testBasedir; } - public TopiaContext getRootCtxt() { + public SammoaTopiaApplicationContext getRootCtxt() { return rootCtxt; } @@ -223,7 +223,7 @@ stream.close(); } result.setProperty( - TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES, + TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, getImplementationClassesAsString()); return result; Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java =================================================================== --- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java 2014-05-16 08:16:53 UTC (rev 665) @@ -33,7 +33,7 @@ import fr.ulr.sammoa.persistence.SammoaDAOHelper; import org.junit.Rule; import org.junit.Test; -import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.SammoaTopiaPersistenceContext; import java.io.File; import java.net.URL; @@ -71,8 +71,8 @@ int result = instance.importObservers(campaign.getTopiaId(), new File(stream.toURI())); - TopiaContext transaction = database.beginTransaction(); - ObserverDAO dao = SammoaDAOHelper.getObserverDAO(transaction); + SammoaTopiaPersistenceContext transaction = database.beginTransaction(); + ObserverTopiaDao dao = transaction.getObserverDao(); Collection<Observer> observers = dao.findAll(); database.endTransaction(transaction); Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java =================================================================== --- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java 2014-05-16 08:16:53 UTC (rev 665) @@ -49,8 +49,8 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.SammoaTopiaPersistenceContext; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.DateUtil; import org.nuiton.util.csv.Common; import org.nuiton.util.csv.ImportModel; @@ -78,7 +78,7 @@ public SammoaDatabase database = new SammoaDatabase("/" + config.getApplicationConfig().getConfigFileName(), config.getAutoCommitDelay()); - protected TopiaContext transaction; + protected SammoaTopiaPersistenceContext transaction; @Before public void setUp() throws TopiaException { @@ -108,7 +108,7 @@ createGeoPoint(DateUtil.createDate(30, 15, 12, 18, 7, 2012), 1, 2, flight); createGeoPoint(DateUtil.createDate(39, 18, 12, 18, 7, 2012), 3, 4, flight); - transaction.commitTransaction(); + transaction.commit(); ExportMapService exportMapService = context.getService(ExportMapService.class); @@ -175,7 +175,7 @@ Flight flight) throws TopiaException { - GeoPointDAO transectDAO = SammoaDAOHelper.getGeoPointDAO(transaction); + GeoPointTopiaDao transectDAO = transaction.getGeoPointDao(); GeoPoint result = transectDAO.create(); result.setRecordTime(date); result.setLatitude(latitude); Modified: trunk/sammoa-application/src/test/resources/sammoa-test.properties =================================================================== --- trunk/sammoa-application/src/test/resources/sammoa-test.properties 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-application/src/test/resources/sammoa-test.properties 2014-05-16 08:16:53 UTC (rev 665) @@ -37,7 +37,7 @@ hibernate.connection.driver_class=org.h2.Driver #Not necessary, but useful -hibernate.connection.provider_class=org.nuiton.topia.framework.TopiaConnectionProvider +#hibernate.connection.provider_class=org.nuiton.topia.framework.TopiaConnectionProvider #data directory sammoa.data.directory=target/sammoa-data Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/AutoSaveListener.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/AutoSaveListener.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/AutoSaveListener.java 2014-05-16 08:16:53 UTC (rev 665) @@ -26,12 +26,11 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.event.TopiaEntityEvent; -import org.nuiton.topia.event.TopiaEntityListener; -import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.event.TopiaEntityEvent; +import org.nuiton.topia.persistence.event.TopiaEntityListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -147,19 +146,19 @@ if (isCommitNeeded()) { - TopiaContext transaction = persistence.openContext(); + SammoaTopiaPersistenceContext sammoaTopiaPersistenceContext = persistence.openContext(); try { Set<TopiaEntity> errorSavedEntities = - saveEntities(transaction, createdEntities, CREATE_ACTION); + saveEntities(sammoaTopiaPersistenceContext, createdEntities, CREATE_ACTION); changedEntities.addAll( - saveEntities(transaction, changedEntities, UPDATE_ACTION)); + saveEntities(sammoaTopiaPersistenceContext, changedEntities, UPDATE_ACTION)); changedEntities.addAll(errorSavedEntities); } finally { - persistence.closeContext(transaction); + persistence.closeContext(sammoaTopiaPersistenceContext); } } @@ -180,12 +179,12 @@ * Commit is done after all entities save. If an error occurs, the entity * are keeped in source {@code entities}, otherwise they are removed. * - * @param transaction TopiaContex used to commit + * @param sammoaContext SammoaTopiaPersistenceContext used to commit * @param entities synchronized Set of entities to save * @param action SaveAction to use * @return a Set of entities in error during save */ - protected Set<TopiaEntity> saveEntities(TopiaContext transaction, + protected Set<TopiaEntity> saveEntities(SammoaTopiaPersistenceContext sammoaContext, Set<TopiaEntity> entities, SaveAction action) { @@ -204,11 +203,15 @@ try { for (TopiaEntity entity : entitiesCopy) { - TopiaDAO dao = SammoaDAOHelper.getDAO(transaction, entity); - action.save(dao, entity); + + Class<? extends TopiaEntity> contractClass = SammoaEntityEnum.getContractClass(entity.getClass()); + + TopiaDao<? extends TopiaEntity> dao = sammoaContext.getDao(contractClass); + + action.save((TopiaDao<TopiaEntity>) dao, entity); } - transaction.commitTransaction(); + sammoaContext.commit(); result = Collections.emptySet(); @@ -229,7 +232,7 @@ protected interface SaveAction { - <E extends TopiaEntity> void save(TopiaDAO<E> dao, E entity) throws TopiaException; + <E extends TopiaEntity> void save(TopiaDao<E> dao, E entity) throws TopiaException; } protected static SaveAction CREATE_ACTION = new SaveAction() { @@ -240,7 +243,7 @@ } @Override - public <E extends TopiaEntity> void save(TopiaDAO<E> dao, E entity) throws TopiaException { + public <E extends TopiaEntity> void save(TopiaDao<E> dao, E entity) throws TopiaException { dao.create(entity); } }; @@ -253,7 +256,7 @@ } @Override - public <E extends TopiaEntity> void save(TopiaDAO<E> dao, E entity) throws TopiaException { + public <E extends TopiaEntity> void save(TopiaDao<E> dao, E entity) throws TopiaException { dao.update(entity); } }; Deleted: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java 2014-05-16 08:16:53 UTC (rev 665) @@ -1,95 +0,0 @@ -/* - * #%L - * SAMMOA :: Persistence - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 UMS 3462, Code Lutin - * %% - * 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% - */ -package fr.ulr.sammoa.persistence; - -import org.apache.commons.lang3.tuple.Pair; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; -import org.nuiton.topia.framework.TopiaSQLQuery; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.List; - -/** - * Created: 08/06/12 - * - * @author fdesbois <desbois@codelutin.com> - * @author tchemit <chemit@codelutin.com> - */ -public class FlightDAOImpl<E extends Flight> extends FlightDAOAbstract<E> { - - public Integer findLastFlightNumber() { - - String ql = "SELECT max(flightNumber) FROM FlightImpl"; - - try { - Integer result = findByQuery(Integer.class, ql); - -// int result = queryResult == null ? defaultValue : queryResult + 1; -// -// if (result < defaultValue) { -// result = defaultValue; -// } - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public List<Pair<String, Integer>> findAllIndexInFlight(final Flight flight) { - - TopiaSQLQuery<Pair<String, Integer>> query = new TopiaSQLQuery<Pair<String, Integer>>() { - - @Override - protected PreparedStatement prepareQuery(Connection connection) throws SQLException { - String ql = "SELECT t.topiaId, t.flight_idx " + - "FROM Flight f, TransectFlight t " + - "WHERE f.topiaid = ? " + - "AND t.flight = f.topiaId"; - PreparedStatement ps = connection.prepareStatement(ql); - ps.setString(1, flight.getTopiaId()); - return ps; - } - - @Override - protected Pair<String, Integer> prepareResult(ResultSet set) throws SQLException { - Pair<String, Integer> result = Pair.of(set.getString(1), set.getInt(2)); - return result; - } - }; - - try { - - List<Pair<String, Integer>> result = query.findMultipleResult(getContext()); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - -} Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightTopiaDao.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightTopiaDao.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightTopiaDao.java 2014-05-16 08:16:53 UTC (rev 665) @@ -0,0 +1,57 @@ +/* + * #%L + * SAMMOA :: Persistence + * + * $Id: FlightDAOImpl.java 500 2012-08-30 15:58:32Z fdesbois $ + * $HeadURL: https://svn.codelutin.com/sammoa/trunk/sammoa-persistence/src/main/java/fr/u... $ + * %% + * Copyright (C) 2012 UMS 3462, Code Lutin + * %% + * 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% + */ +package fr.ulr.sammoa.persistence; + +import org.nuiton.topia.persistence.TopiaException; + +import java.util.HashMap; + +/** + * Created: 08/06/12 + * + * @author fdesbois <desbois@codelutin.com> + * @author tchemit <chemit@codelutin.com> + */ +public class FlightTopiaDao extends AbstractFlightTopiaDao<Flight> { + + public Integer findLastFlightNumber() { + + String ql = "SELECT max(" + Flight.PROPERTY_FLIGHT_NUMBER + ") FROM " + Flight.class.getCanonicalName() ; + + try { + Integer result = findUnique(ql, new HashMap<String, Object>()); + +// int result = queryResult == null ? defaultValue : queryResult + 1; +// +// if (result < defaultValue) { +// result = defaultValue; +// } + return result; + } catch (TopiaException e) { + throw new TopiaException(e); + } + } + +} Deleted: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPointDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPointDAOImpl.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPointDAOImpl.java 2014-05-16 08:16:53 UTC (rev 665) @@ -1,47 +0,0 @@ -package fr.ulr.sammoa.persistence; -/* - * #%L - * SAMMOA :: Persistence - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 UMS 3462, Code Lutin - * %% - * 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 org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; - -import java.util.List; - -public class GeoPointDAOImpl<E extends GeoPoint> extends GeoPointDAOAbstract<E> { - - public List<E> findAllByFlightOrderedByRecordTime(Flight flight) { - - String ql = "FROM GeoPointImpl " + - "WHERE flight = :flight " + - "ORDER BY recordTime"; - - try { - List<E> result = findAllByQuery(ql, "flight", flight); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - -} //GeoPointDAOImpl<E extends GeoPoint> Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPointTopiaDao.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPointTopiaDao.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPointTopiaDao.java 2014-05-16 08:16:53 UTC (rev 665) @@ -0,0 +1,37 @@ +package fr.ulr.sammoa.persistence; +/* + * #%L + * SAMMOA :: Persistence + * $Id: GeoPointDAOImpl.java 497 2012-08-30 13:28:13Z fdesbois $ + * $HeadURL: https://svn.codelutin.com/sammoa/trunk/sammoa-persistence/src/main/java/fr/u... $ + * %% + * Copyright (C) 2012 UMS 3462, Code Lutin + * %% + * 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 java.util.List; + +public class GeoPointTopiaDao extends AbstractGeoPointTopiaDao<GeoPoint> { + + public List<GeoPoint> findAllByFlightOrderedByRecordTime(Flight flight) { + + List<GeoPoint> geoPoints = forFlightEquals(flight).setOrderByArguments(GeoPoint.PROPERTY_RECORD_TIME).findAll(); + + return geoPoints; + } + +} //GeoPointDAOImpl<E extends GeoPoint> Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java 2014-05-16 08:16:53 UTC (rev 665) @@ -84,7 +84,7 @@ return FluentIterable.from(dates) .transform(toClosestGeoPoint(geoPoints)) - .toImmutableList(); + .toList(); } public static GeoPoint getClosestPoint(List<GeoPoint> geoPoints, @@ -144,7 +144,7 @@ this.dates = FluentIterable .from(list) .transform(toDate()) - .toSortedImmutableList(Ordering.natural()); + .toSortedList(Ordering.natural()); } @Override Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/HasTopiaIdPredicate.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/HasTopiaIdPredicate.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/HasTopiaIdPredicate.java 2014-05-16 08:16:53 UTC (rev 665) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: Persistence - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% Deleted: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java 2014-05-16 08:16:53 UTC (rev 665) @@ -1,111 +0,0 @@ -/* - * #%L - * SAMMOA :: Persistence - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 UMS 3462, Code Lutin - * %% - * 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% - */ -package fr.ulr.sammoa.persistence; - -import com.google.common.base.Strings; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.List; - -public class ObservationDAOImpl<E extends Observation> extends ObservationDAOAbstract<E> { - - private static final Logger logger = LoggerFactory.getLogger(ObservationDAOImpl.class); - - /** - * Override update method to have special treatment for Species. - * We can't save the species before the Observation is saved, and - * the Observation could be automatically saved at any time. - * So we check if the species exists and if the code is correct to push - * this species in the observation. If the species doesn't exist in the - * database, it could be created (localCreation) at the same time (sort of - * aggregate relation that allow cascade on update). - * - * @param e Observation to update - * @return the updated obervsation - * @throws TopiaException for any errors - */ - @Override - public E update(E e) throws TopiaException { - - Species species = e.getSpecies(); - - // Only if species is not persisted and contains a code - if (species != null - && !Strings.isNullOrEmpty(species.getCode()) - && species.getTopiaId() == null) { - - SpeciesDAO speciesDAO = SammoaDAOHelper.getSpeciesDAO(getContext()); - Species existSpecies = speciesDAO.findByNaturalId(species.getCode(), species.getRegion()); - if (existSpecies == null) { - - logger.debug("Create a new species '{}'", species.getCode()); - - species.setLocalCreation(true); - speciesDAO.create(species); - - } else { - - logger.debug("Use existing species '{}'", existSpecies.getCode()); - - e.setSpecies(existSpecies); - } - } - - return super.update(e); - } - - public List<E> findAllByFlightOrderedByObservationTime(Flight flight) { - - - String ql = "FROM ObservationImpl " + - "WHERE flight = :flight " + - "ORDER BY observationTime, topiaCreateDate"; - - try { - List<E> result = findAllByQuery(ql, "flight", flight); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public int findLastObservationNumber(Flight flight) { - - String ql = "SELECT max(observationNumber) " + - "FROM ObservationImpl " + - "WHERE flight = :flight"; - - try { - Integer queryResult = findByQuery(Integer.class, ql, "flight", flight); - int result = queryResult == null ? 1 : queryResult + 1; - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - -} //ObservationDAOImpl<E extends Observation> Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationTopiaDao.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationTopiaDao.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationTopiaDao.java 2014-05-16 08:16:53 UTC (rev 665) @@ -0,0 +1,100 @@ +/* + * #%L + * SAMMOA :: Persistence + * $Id: ObservationDAOImpl.java 497 2012-08-30 13:28:13Z fdesbois $ + * $HeadURL: https://svn.codelutin.com/sammoa/trunk/sammoa-persistence/src/main/java/fr/u... $ + * %% + * Copyright (C) 2012 UMS 3462, Code Lutin + * %% + * 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% + */ +package fr.ulr.sammoa.persistence; + +import com.google.common.base.Strings; +import com.google.common.collect.ImmutableMap; +import org.nuiton.topia.persistence.TopiaException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +public class ObservationTopiaDao extends AbstractObservationTopiaDao<Observation> { + + private static final Logger logger = LoggerFactory.getLogger(ObservationTopiaDao.class); + + /** + * Override update method to have special treatment for Species. + * We can't save the species before the Observation is saved, and + * the Observation could be automatically saved at any time. + * So we check if the species exists and if the code is correct to push + * this species in the observation. If the species doesn't exist in the + * database, it could be created (localCreation) at the same time (sort of + * aggregate relation that allow cascade on update). + * + * @param e Observation to update + * @return the updated obervsation + * @throws TopiaException for any errors + */ + @Override + public Observation update(Observation e) throws TopiaException { + + Species species = e.getSpecies(); + + // Only if species is not persisted and contains a code + if (species != null + && !Strings.isNullOrEmpty(species.getCode()) + && species.getTopiaId() == null) { + + SpeciesTopiaDao speciesDAO = topiaDaoSupplier.getDao(Species.class, SpeciesTopiaDao.class); + Species existSpecies = speciesDAO.findByNaturalId(species.getCode(), species.getRegion()); + if (existSpecies == null) { + + logger.debug("Create a new species '{}'", species.getCode()); + + species.setLocalCreation(true); + speciesDAO.create(species); + + } else { + + logger.debug("Use existing species '{}'", existSpecies.getCode()); + + e.setSpecies(existSpecies); + } + } + + return super.update(e); + } + + public List<Observation> findAllByFlightOrderedByObservationTime(Flight flight) { + + List<Observation> observations = forFlightEquals(flight).setOrderByArguments(Observation.PROPERTY_OBSERVATION_TIME, Observation.PROPERTY_TOPIA_CREATE_DATE).findAll(); + return observations; + } + + public int findLastObservationNumber(Flight flight) { + + String hql = "SELECT max(" + Observation.PROPERTY_OBSERVATION_NUMBER + ") " + + newFromClause() + " " + + "WHERE " + Observation.PROPERTY_FLIGHT + " = :flight"; + + Integer queryResult = findAnyOrNull(hql, ImmutableMap.of("flight", (Object)flight)); + + int result = queryResult == null ? 1 : queryResult + 1; + + return result; + } + +} //ObservationDAOImpl<Observation extends Observation> Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2014-05-16 08:16:53 UTC (rev 665) @@ -176,7 +176,7 @@ List<Observation> result = FluentIterable .from(observations) .filter(inDateInterval(interval)) - .toImmutableList(); + .toList(); Iterables.removeAll(observations, result); Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/PersistenceException.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/PersistenceException.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/PersistenceException.java 2014-05-16 08:16:53 UTC (rev 665) @@ -3,8 +3,8 @@ /* * #%L * SAMMOA :: Persistence - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Position.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Position.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Position.java 2014-05-16 08:16:53 UTC (rev 665) @@ -3,8 +3,8 @@ /* * #%L * SAMMOA :: Persistence - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -24,7 +24,7 @@ * #L% */ -import static org.nuiton.i18n.I18n.n_; +import static org.nuiton.i18n.I18n.n; /** * Created: 29/08/12 @@ -33,17 +33,17 @@ */ public enum Position { - NAVIGATOR(n_("sammoa.position.navigator")), + NAVIGATOR(n("sammoa.position.navigator")), - FRONT_LEFT(n_("sammoa.position.frontLeft")), + FRONT_LEFT(n("sammoa.position.frontLeft")), - FRONT_RIGHT(n_("sammoa.position.frontRight")), + FRONT_RIGHT(n("sammoa.position.frontRight")), - BACK_LEFT(n_("sammoa.position.backLeft")), + BACK_LEFT(n("sammoa.position.backLeft")), - BACK_RIGHT(n_("sammoa.position.backRight")), + BACK_RIGHT(n("sammoa.position.backRight")), - CO_NAVIGATOR(n_("sammoa.position.coNavigator")); + CO_NAVIGATOR(n("sammoa.position.coNavigator")); private String label; Deleted: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java 2014-05-16 08:16:53 UTC (rev 665) @@ -1,153 +0,0 @@ -/* - * #%L - * SAMMOA :: Persistence - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 UMS 3462, Code Lutin - * %% - * 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% - */ -package fr.ulr.sammoa.persistence; - -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; - -import java.util.Date; -import java.util.List; - -/** - * Created: 15/06/12 - * - * @author fdesbois <desbois@codelutin.com> - */ -public class RouteDAOImpl<E extends Route> extends RouteDAOAbstract<E> { - - public List<E> findAllByFlightOrderedByBeginTime(Flight flight) { - - String ql = "FROM RouteImpl " + - "WHERE flight = :flight " + - "ORDER BY beginTime, topiaCreateDate"; - - try { - List<E> result = findAllByQuery(ql, "flight", flight); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public E findLastByFlight(Flight flight) { - - String ql = "FROM RouteImpl " + - "WHERE flight = :flight " + - "AND deleted = :deleted " + - "ORDER BY beginTime DESC, topiaCreateDate DESC"; - - try { - List<E> queryResults = findAllByQueryWithBound( - ql, 0, 1, "flight", flight, "deleted", false); - E result = queryResults.isEmpty() ? null : queryResults.get(0); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public E findPreviousLEG(Route route) throws TopiaException { - - route = findByTopiaId(route.getTopiaId()); - - String ql = "FROM RouteImpl " + - "WHERE flight = :flight " + - "AND routeType = :type " + - "AND beginTime <= :date " + - "AND deleted = :deleted " + - "ORDER BY beginTime DESC, topiaCreateDate DESC"; - - try { - List<E> queryResults = findAllByQueryWithBound( - ql, 0, 1, - "flight", route.getFlight(), - "type", RouteType.LEG, - "date", route.getBeginTime(), - "deleted", false - ); - E result = queryResults.isEmpty() ? null : queryResults.get(0); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public E findPreviousRoute(Route route) throws TopiaException { - - route = findByTopiaId(route.getTopiaId()); - - String ql = "FROM RouteImpl " + - "WHERE flight = :flight " + - "AND beginTime <= :date " + - "AND deleted = :deleted " + - "ORDER BY beginTime DESC, topiaCreateDate DESC"; - - try { - List<E> queryResults = findAllByQueryWithBound( - ql, 0, 1, - "flight", route.getFlight(), - "date", route.getBeginTime(), - "deleted", false - ); - E result = queryResults.isEmpty() ? null : queryResults.get(0); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public int getLastEffortNumber(Flight flight) { - - String ql = "SELECT max(effortNumber) " + - "FROM RouteImpl " + - "WHERE effortNumber IS NOT NULL " + - "AND flight = :flight"; - - try { - Integer queryResult = findByQuery( - Integer.class, ql, "flight", flight); - int result = queryResult == null ? 1 : queryResult + 1; - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public long countByTransectFlightBeforeTime(TransectFlight transectFlight, - Date time) { - - String ql = "SELECT count(*) " + - "FROM RouteImpl " + - "WHERE transectFlight = :transectFlight " + - "AND beginTime < :beginTime"; - - try { - long result = countByQuery(ql, "transectFlight", transectFlight, "beginTime", time); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - -} Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteTopiaDao.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteTopiaDao.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteTopiaDao.java 2014-05-16 08:16:53 UTC (rev 665) @@ -0,0 +1,144 @@ +/* + * #%L + * SAMMOA :: Persistence + * $Id: RouteDAOImpl.java 524 2012-09-05 14:03:46Z fdesbois $ + * $HeadURL: https://svn.codelutin.com/sammoa/trunk/sammoa-persistence/src/main/java/fr/u... $ + * %% + * Copyright (C) 2012 UMS 3462, Code Lutin + * %% + * 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% + */ +package fr.ulr.sammoa.persistence; + +import com.google.common.base.Optional; +import com.google.common.collect.ImmutableMap; +import org.nuiton.topia.persistence.TopiaException; + +import java.util.Date; +import java.util.List; + +/** + * Created: 15/06/12 + * + * @author fdesbois <desbois@codelutin.com> + */ +public class RouteTopiaDao extends AbstractRouteTopiaDao<Route> { + + public List<Route> findAllByFlightOrderedByBeginTime(Flight flight) { + + List<Route> routes = forFlightEquals(flight).setOrderByArguments(Route.PROPERTY_BEGIN_TIME, Route.PROPERTY_TOPIA_CREATE_DATE).findAll(); + + return routes; + } + + public Route findLastByFlight(Flight flight) { + + Optional<Route> routeOptional = forFlightEquals(flight) + .addEquals(Route.PROPERTY_DELETED, false) + .setOrderByArguments(Route.PROPERTY_BEGIN_TIME + " DESC", Route.PROPERTY_TOPIA_CREATE_DATE + " DESC") + .tryFindFirst(); + + Route route = null; + + if (routeOptional.isPresent()) { + + route = routeOptional.get(); + + } + + return route; + } + + public Route findPreviousLEG(Route route) throws TopiaException { + + route = findByTopiaId(route.getTopiaId()); + + String hql = newFromClause() + " " + + "WHERE " + Route.PROPERTY_FLIGHT + " = :flight " + + "AND " + Route.PROPERTY_ROUTE_TYPE + " = :type " + + "AND " + Route.PROPERTY_BEGIN_TIME + " <= :date " + + "AND " + Route.PROPERTY_DELETED + " = :deleted " + + "ORDER BY " + Route.PROPERTY_BEGIN_TIME + " DESC, " + Route.PROPERTY_TOPIA_CREATE_DATE + " DESC"; + + ImmutableMap<String, Object> parameters = ImmutableMap.of( + "flight", (Object) route.getFlight(), + "type", RouteType.LEG, + "date", route.getBeginTime(), + "deleted", false); + + Route result = findFirstOrNull(hql, parameters ); + + return result; + } + + public Route findPreviousRoute(Route route) throws TopiaException { + + route = findByTopiaId(route.getTopiaId()); + + String hql = newFromClause() + " " + + "WHERE " + Route.PROPERTY_FLIGHT + " = :flight " + + "AND " + Route.PROPERTY_BEGIN_TIME + " <= :date " + + "AND " + Route.PROPERTY_DELETED + " = :deleted " + + "ORDER BY " + Route.PROPERTY_BEGIN_TIME + " DESC, " + Route.PROPERTY_TOPIA_CREATE_DATE + " DESC"; + + ImmutableMap<String, Object> parameters = ImmutableMap.of( + "flight", (Object) route.getFlight(), + "date", route.getBeginTime(), + "deleted", false); + + Route result = findFirstOrNull(hql, parameters ); + + return result; + + } + + public int getLastEffortNumber(Flight flight) { + + String hql = "SELECT max(" + Route.PROPERTY_EFFORT_NUMBER + ") " + + newFromClause() + " " + + "WHERE " + Route.PROPERTY_EFFORT_NUMBER + " IS NOT NULL " + + "AND " + Route.PROPERTY_FLIGHT + " = :flight "; + + ImmutableMap<String, Object> parameters = ImmutableMap.of( + "flight", (Object) flight); + + Integer queryResult = findFirstOrNull(hql, parameters ); + + int result = queryResult == null ? 1 : queryResult + 1; + + return result; + + } + + public long countByTransectFlightBeforeTime(TransectFlight transectFlight, + Date time) { + + String hql = "SELECT count(*) " + + newFromClause() + " " + + "WHERE " + Route.PROPERTY_TRANSECT_FLIGHT + " = :transectFlight " + + "AND " + Route.PROPERTY_BEGIN_TIME + " <= :date "; + + ImmutableMap<String, Object> parameters = ImmutableMap.of( + "transectFlight", (Object) transectFlight, + "date", time); + + long count = count(hql, parameters); + + return count; + + } + +} Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java 2014-05-16 08:16:53 UTC (rev 665) @@ -25,11 +25,8 @@ package fr.ulr.sammoa.persistence; import com.google.common.base.Preconditions; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaContextFactory; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; -import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.persistence.TopiaConfigurationConstants; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.TopiaEntity; import java.io.Closeable; @@ -42,7 +39,7 @@ * {@link #open(Properties, long)}. * <p/> * You will create a transaction with {@link #beginTransaction()} and on finally - * block call {@link #endTransaction(TopiaContext)}. + * block call {@link #endTransaction(SammoaTopiaPersistenceContext)}. * <p/> * Created: 08/06/12 * @@ -52,7 +49,7 @@ protected static SammoaPersistence instance; - protected TopiaContext rootContext; + protected SammoaTopiaApplicationContext rootContext; protected Properties dbConfiguration; @@ -64,7 +61,7 @@ /** * Open the Persistence with {@code dbConfiguration} for - * {@link TopiaContextFactory#getContext(Properties)} and {@code autoCommitDelay} + * {@link SammoaTopiaApplicationContext#SammoaTopiaApplicationContext(java.util.Map)} and {@code autoCommitDelay} * for {@link AutoSaveListener}. You can't open an already opened context. * You have to call {@link #close()} before open it. * @@ -79,17 +76,17 @@ this.dbConfiguration = dbConfiguration; dbConfiguration.setProperty( - TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES, - SammoaDAOHelper.getImplementationClassesAsString()); + TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, + SammoaEntityEnum.getImplementationClassesAsString()); autoSaveListener = new AutoSaveListener(this, autoCommitDelay); // Retrieve the rootContext and try opening a transaction to check // the connection - TopiaContext tx = null; + SammoaTopiaPersistenceContext tx = null; try { - rootContext = TopiaContextFactory.getContext(dbConfiguration); - tx = rootContext.beginTransaction(); + rootContext = new SammoaTopiaApplicationContext(dbConfiguration); + tx = rootContext.newPersistenceContext(); } catch (TopiaException ex) { throw new PersistenceException( @@ -106,19 +103,19 @@ } /** - * Begin a new transaction (TopiaContext). The {@link AutoSaveListener} + * Begin a new transaction (SammoaTopiaPersistenceContext). The {@link AutoSaveListener} * will be automatically bind on all entities change. During the transaction - * time, no auto commit will be done, the next {@link #endTransaction(TopiaContext)} + * time, no auto commit will be done, the next {@link #endTransaction(SammoaTopiaPersistenceContext)} * call will release the AutoSaveListener to continue looking for change. * - * @return a new TopiaContext - * @see #endTransaction(TopiaContext) - * @see TopiaContext#beginTransaction() + * @return a new SammoaTopiaPersistenceContext + * @see #endTransaction(SammoaTopiaPersistenceContext) + * @see SammoaTopiaApplicationContext#newPersistenceContext() */ - public TopiaContext beginTransaction() { + public SammoaTopiaPersistenceContext beginTransaction() { autoSaveListener.stop(); - TopiaContext result = openContext(); - result.addTopiaEntityListener(autoSaveListener); + SammoaTopiaPersistenceContext result = openContext(); + result.getFiresSupport().addTopiaEntityListener(autoSaveListener); return result; } @@ -140,24 +137,24 @@ * End the {@code transaction}. The {@link AutoSaveListener} will be released * to continue looking for entities change. * - * @param transaction TopiaContext to end + * @param transaction SammoaTopiaPersistenceContext to end * @see #beginTransaction() - * @see TopiaContext#closeContext() + * @see SammoaTopiaPersistenceContext#closeContext() */ - public void endTransaction(TopiaContext transaction) { + public void endTransaction(SammoaTopiaPersistenceContext transaction) { closeContext(transaction); autoSaveListener.start(); } - /** @return the main TopiaContext where all other transactions are opened */ - public TopiaContext getRootContext() { + /** @return the main SammoaTopiaPersistenceContext where all other transactions are opened */ + public SammoaTopiaApplicationContext getRootContext() { Preconditions.checkState(rootContext != null, "You have to open the persistence to use rootContext"); return rootContext; } - /** @param rootContext the main TopiaContext to use */ - public void setRootContext(TopiaContext rootContext) { + /** @param rootContext the main SammoaTopiaPersistenceContext to use */ + public void setRootContext(SammoaTopiaApplicationContext rootContext) { this.rootContext = rootContext; } @@ -169,20 +166,16 @@ public void destroyDb() { autoSaveListener.stop(); if (rootContext != null) { - try { - // destroy current db (only orks with h2) - rootContext.clear(true); + // destroy current db (only orks with h2) + rootContext.dropSchema(); - // clean root context - setRootContext(null); - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } + // clean root context + setRootContext(null); } } /** - * Close the persistence context. This will close the main {@link TopiaContext} + * Close the persistence context. This will close the main {@link SammoaTopiaPersistenceContext} * and the {@link AutoSaveListener}. * * @see AutoSaveListener#stop() @@ -191,7 +184,7 @@ public void close() { autoSaveListener.stop(); if (rootContext != null) { - closeContext(rootContext); + rootContext.closeContext(); rootContext = null; } } @@ -211,36 +204,28 @@ } /** - * Open a new {@link TopiaContext}. Errors are thrown using {@link TopiaRuntimeException} + * Open a new {@link SammoaTopiaPersistenceContext}. Errors are thrown using {@link TopiaException} * - * @return a new topiaContext - * @see TopiaContext#beginTransaction() + * @return a new SammoaTopiaPersistenceContext + * @see SammoaTopiaApplicationContext#newPersistenceContext() */ - protected TopiaContext openContext() { - try { - return getRootContext().beginTransaction(); - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } + protected SammoaTopiaPersistenceContext openContext() { + return getRootContext().newPersistenceContext(); } /** - * Close the given {@link TopiaContext}. Errors are thrown using {@link TopiaRuntimeException} + * Close the given {@link SammoaTopiaPersistenceContext}. Errors are thrown using {@link TopiaException} * - * @param context the topiaContext - * @see TopiaContext#closeContext() + * @param context the SammoaTopiaPersistenceContext + * @see SammoaTopiaPersistenceContext#closeContext() */ - protected void closeContext(TopiaContext context) { + protected void closeContext(SammoaTopiaPersistenceContext context) { if (!context.isClosed()) { - try { - context.closeContext(); - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } + context.closeContext(); } } - public void flushTransaction(TopiaContext tx) throws TopiaException { - ((TopiaContextImplementor) tx).getHibernate().flush(); + public void flushTransaction(SammoaTopiaPersistenceContext tx) throws TopiaException { + tx.getHibernateSupport().getHibernateSession().flush(); } } Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistenceHelper.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistenceHelper.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistenceHelper.java 2014-05-16 08:16:53 UTC (rev 665) @@ -23,11 +23,7 @@ * #L% */ -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; -import org.nuiton.topia.framework.TopiaContextImplementor; -import org.nuiton.topia.persistence.TopiaDAO; + import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaPersistenceHelper; @@ -44,22 +40,4 @@ return SammoaEntityEnum.valueOf(type); } - @Override - public <E extends TopiaEntity> TopiaDAO<E> getDAO(TopiaContext tx, Class<E> type) { - try { - return SammoaDAOHelper.<E, TopiaDAO<E>>getDAO(tx, type); - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - @Override - public <E extends TopiaEntity> TopiaDAO<E> getDAO(TopiaContext tx, SammoaEntityEnum type) { - return (TopiaDAO<E>) getDAO(tx, type.getContract()); - } - - public void flushTransaction(TopiaContext tx) throws TopiaException { - ((TopiaContextImplementor)tx).getHibernate().flush(); - } - } Deleted: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateDAOImpl.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateDAOImpl.java 2014-05-16 08:16:53 UTC (rev 665) @@ -1,46 +0,0 @@ -package fr.ulr.sammoa.persistence; -/* - * #%L - * SAMMOA :: Persistence - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 UMS 3462, Code Lutin - * %% - * 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 org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; - -import java.util.List; - -public class StrateDAOImpl<E extends Strate> extends StrateDAOAbstract<E> { - - public List<E> findAllByCampaignOrderedByCode(Campaign campaign) { - - String ql = "FROM StrateImpl " + - "WHERE sector.campaign = :campaign " + - "ORDER BY sector.sectorNumber, code"; - - try { - List<E> result = findAllByQuery(ql, "campaign", campaign); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } -} //StrateDAOImpl<E extends Strate> Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateTopiaDao.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateTopiaDao.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateTopiaDao.java 2014-05-16 08:16:53 UTC (rev 665) @@ -0,0 +1,38 @@ +package fr.ulr.sammoa.persistence; +/* + * #%L + * SAMMOA :: Persistence + * $Id: StrateDAOImpl.java 494 2012-08-30 13:27:15Z fdesbois $ + * $HeadURL: https://svn.codelutin.com/sammoa/trunk/sammoa-persistence/src/main/java/fr/u... $ + * %% + * Copyright (C) 2012 UMS 3462, Code Lutin + * %% + * 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 java.util.List; + +public class StrateTopiaDao extends AbstractStrateTopiaDao<Strate> { + + public List<Strate> findAllByCampaignOrderedByCode(Campaign campaign) { + + List<Strate> strates = forEquals(Strate.PROPERTY_SECTOR + "." + Sector.PROPERTY_CAMPAIGN, campaign) + .setOrderByArguments(Strate.PROPERTY_SECTOR + "." + Sector.PROPERTY_SECTOR_NUMBER, Strate.PROPERTY_CODE) + .findAll(); + + return strates; + } +} //StrateDAOImpl<E extends Strate> Deleted: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectDAOImpl.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectDAOImpl.java 2014-05-16 08:16:53 UTC (rev 665) @@ -1,47 +0,0 @@ -package fr.ulr.sammoa.persistence; -/* - * #%L - * SAMMOA :: Persistence - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 UMS 3462, Code Lutin - * %% - * 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 org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; - -import java.util.List; - -public class TransectDAOImpl<E extends Transect> extends TransectDAOAbstract<E> { - - public List<E> findAllByCampaignOrderedByName(Campaign campaign) { - - String ql = "FROM TransectImpl " + - "WHERE strate.sector.campaign = :campaign " + - "ORDER BY name"; - - try { - List<E> result = findAllByQuery(ql, "campaign", campaign); - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - -} //TransectDAOImpl<E extends Transect> Deleted: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlightDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlightDAOImpl.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlightDAOImpl.java 2014-05-16 08:16:53 UTC (rev 665) @@ -1,121 +0,0 @@ -package fr.ulr.sammoa.persistence; -/* - * #%L - * SAMMOA :: Persistence - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 UMS 3462, Code Lutin - * %% - * 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.collect.Maps; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaRuntimeException; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -public class TransectFlightDAOImpl<E extends TransectFlight> extends TransectFlightDAOAbstract<E> { - - public Map<Transect, Long> countAllByTransect() { - - String ql = "SELECT transect, count(*) " + - "FROM TransectFlightImpl " + - "GROUP BY transect"; - - try { - List<Object[]> queryResults = findAllByQuery(Object[].class, ql); - Map<Transect, Long> result = Maps.newHashMap(); - for (Object[] row : queryResults) { - Transect transect = (Transect) row[0]; - Long nbTransectFlights = (Long) row[1]; - result.put(transect, nbTransectFlights); - } - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public Map<Transect, Long> countAllByTransects(Collection<Transect> transects) { - - - String ql = "SELECT transect, count(*) " + - "FROM TransectFlightImpl " + - "WHERE transect IN (:transects) " + - "GROUP BY transect"; - - try { - List<Object[]> queryResults = findAllByQuery( - Object[].class, ql, "transects", transects); - Map<Transect, Long> result = Maps.newHashMap(); - for (Object[] row : queryResults) { - Transect transect = (Transect) row[0]; - Long nbTransectFlights = (Long) row[1]; - result.put(transect, nbTransectFlights); - } - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public int getMaxCrossingNumberByTransect(Transect transect) { - - String ql = "SELECT max(crossingNumber), count(*), transect.nbTimes " + - "FROM TransectFlightImpl " + - "WHERE transect = :transect " + - "AND deleted = :deleted " + - "GROUP BY transect"; - try { - Object[] queryResults = (Object[]) getContext().findUnique( - ql, "transect", transect, "deleted", false); - - int result; - if (queryResults == null) { - // By default we use the transect nbTimes set by import - result = transect.getNbTimes(); - - } else { - int maxCrossingNumber = (Integer) queryResults[0]; - int nbTransectFlights = ((Long) queryResults[1]).intValue(); - int transectNbTimes = (Integer) queryResults[2]; - result = Math.max(Math.max(maxCrossingNumber, nbTransectFlights), transectNbTimes); - } - return result; - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - } - - public void reAttachIndexInFlight(Iterable<TransectFlight> transectFlights) throws TopiaException { - StringBuilder builder = new StringBuilder(); - - String ql = "UPDATE TransectFlight SET flight_idx = %s " + - "WHERE topiaid = '%s';"; - - for (TransectFlight transectFlight : transectFlights) { - builder.append(String.format(ql, transectFlight.getIndexInFlight(), - transectFlight.getTopiaId())); - } - - getContext().executeSQL(builder.toString()); - } - -} Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlightTopiaDao.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlightTopiaDao.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlightTopiaDao.java 2014-05-16 08:16:53 UTC (rev 665) @@ -0,0 +1,96 @@ +package fr.ulr.sammoa.persistence; +/* + * #%L + * SAMMOA :: Persistence + * $Id: TransectFlightDAOImpl.java 586 2012-09-21 13:00:10Z fdesbois $ + * $HeadURL: https://svn.codelutin.com/sammoa/trunk/sammoa-persistence/src/main/java/fr/u... $ + * %% + * Copyright (C) 2012 UMS 3462, Code Lutin + * %% + * 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.collect.ImmutableMap; +import com.google.common.collect.Maps; +import org.apache.commons.collections.CollectionUtils; +import org.nuiton.topia.persistence.TopiaException; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +public class TransectFlightTopiaDao extends AbstractTransectFlightTopiaDao<TransectFlight> { + + public Map<Transect, Long> countAllByTransect(Collection<Transect> transects) { + + String hql = "SELECT " + TransectFlight.PROPERTY_TRANSECT + ", count(*) " + + newFromClause(); + + ImmutableMap<String, Object> parameters = ImmutableMap.of(); + + if (CollectionUtils.isEmpty(transects)) { + hql += " WHERE " + TransectFlight.PROPERTY_TRANSECT + " IN (:transects) "; + parameters = ImmutableMap.of("transects", (Object) transects); + } + + hql += " GROUP BY " + TransectFlight.PROPERTY_TRANSECT; + + List<Object[]> queryResults = findAll(hql, parameters); + + Map<Transect, Long> result = Maps.newHashMap(); + for (Object[] row : queryResults) { + Transect transect = (Transect) row[0]; + Long nbTransectFlights = (Long) row[1]; + result.put(transect, nbTransectFlights); + } + return result; + } + + public int getMaxCrossingNumberByTransect(Transect transect) { + + String hql = "SELECT max(" + TransectFlight.PROPERTY_CROSSING_NUMBER + "), count(*)" + + newFromClause() + " " + + "WHERE " + TransectFlight.PROPERTY_TRANSECT + " = :transect " + + "AND " + TransectFlight.PROPERTY_DELETED + " = :deleted "; + + ImmutableMap<String, Object> parameters = ImmutableMap.of("transect", (Object) transect, "deleted", false); + + Object[] queryResults = findAny(hql, parameters); + + int maxCrossingNumber = queryResults[0] != null ? (Integer) queryResults[0] : 0; + int nbTransectFlights = ((Long) queryResults[1]).intValue(); + int result = Math.max(Math.max(maxCrossingNumber, nbTransectFlights), transect.getNbTimes()); + + return result; + } + + + public void reAttachIndexInFlight(Iterable<TransectFlight> transectFlights) throws TopiaException { + + StringBuilder builder = new StringBuilder(); + + String ql = "UPDATE TransectFlight SET flight_idx = %s " + + "WHERE topiaid = '%s';"; + + for (TransectFlight transectFlight : transectFlights) { + builder.append(String.format(ql, transectFlight.getIndexInFlight(), + transectFlight.getTopiaId())); + } + + topiaSqlSupport.executeSql(builder.toString()); + } + +} Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectTopiaDao.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectTopiaDao.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectTopiaDao.java 2014-05-16 08:16:53 UTC (rev 665) @@ -0,0 +1,42 @@ +package fr.ulr.sammoa.persistence; +/* + * #%L + * SAMMOA :: Persistence + * $Id: TransectDAOImpl.java 497 2012-08-30 13:28:13Z fdesbois $ + * $HeadURL: https://svn.codelutin.com/sammoa/trunk/sammoa-persistence/src/main/java/fr/u... $ + * %% + * Copyright (C) 2012 UMS 3462, Code Lutin + * %% + * 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 java.util.List; + +public class TransectTopiaDao extends AbstractTransectTopiaDao<Transect> { + + public static final String PROPERTY_CAMPAIGN = Transect.PROPERTY_STRATE + "." + Strate.PROPERTY_SECTOR + "." + Sector.PROPERTY_CAMPAIGN; + + public List<Transect> findAllByCampaignOrderedByName(Campaign campaign) { + + List<Transect> transects = forEquals(PROPERTY_CAMPAIGN,campaign) + .setOrderByArguments(Transect.PROPERTY_NAME) + .findAll(); + + return transects; + + } + +} //TransectDAOImpl<E extends Transect> Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Validables.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Validables.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Validables.java 2014-05-16 08:16:53 UTC (rev 665) @@ -3,8 +3,8 @@ /* * #%L * SAMMOA :: Persistence - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% Modified: trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/DataAutoSaveListenerTest.java =================================================================== --- trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/DataAutoSaveListenerTest.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/DataAutoSaveListenerTest.java 2014-05-16 08:16:53 UTC (rev 665) @@ -27,8 +27,7 @@ import org.junit.Assert; import org.junit.Rule; import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Date; @@ -67,16 +66,16 @@ Campaign campaign = database.createCampaign("PACOMM", "FRANCE"); - TopiaContext transaction = database.beginTransaction(); + SammoaTopiaPersistenceContext transaction = database.beginTransaction(); - FlightDAO flightDAO = SammoaDAOHelper.getFlightDAO(transaction); + FlightTopiaDao flightDAO = transaction.getFlightDao(); Flight flight = flightDAO.createByNaturalId("A", number, campaign); - ObservationDAO observationDAO = SammoaDAOHelper.getObservationDAO(transaction); + ObservationTopiaDao observationDAO = transaction.getObservationDao(); Observation result = observationDAO.createByNaturalId(number, flight); result.setObservationTime(time); - transaction.commitTransaction(); + transaction.commit(); database.endTransaction(transaction); return result; @@ -84,12 +83,12 @@ protected Observation getObservation(String topiaId) throws TopiaException { - TopiaContext transaction = database.beginTransaction(); + SammoaTopiaPersistenceContext transaction = database.beginTransaction(); - ObservationDAO observationDAO = SammoaDAOHelper.getObservationDAO(transaction); + ObservationTopiaDao observationDAO = transaction.getObservationDao(); Observation result = observationDAO.findByTopiaId(topiaId); - transaction.commitTransaction(); + transaction.commit(); database.endTransaction(transaction); return result; Modified: trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDatabase.java =================================================================== --- trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDatabase.java 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDatabase.java 2014-05-16 08:16:53 UTC (rev 665) @@ -28,9 +28,8 @@ import org.apache.commons.lang3.StringUtils; import org.junit.rules.TestWatcher; import org.junit.runner.Description; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaContextFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaConfigurationConstants; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.TopiaEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,7 +61,7 @@ protected Properties dbConfiguration; - protected TopiaContext rootCtxt; + protected SammoaTopiaApplicationContext rootCtxt; protected Description description; @@ -83,7 +82,7 @@ * @since 3.0 */ protected Class<? extends TopiaEntity>[] getImplementationClasses() { - return SammoaDAOHelper.getImplementationClasses(); + return SammoaEntityEnum.getImplementationClasses(); } @Override @@ -117,11 +116,11 @@ } dbConfiguration.setProperty( - TopiaContextFactory.CONFIG_URL, jdbcUrl); + TopiaConfigurationConstants.CONFIG_URL, jdbcUrl); onDbConfigurationCreate(dbConfiguration, testBasedir, dbPath); - rootCtxt = TopiaContextFactory.getContext(dbConfiguration); + rootCtxt = new SammoaTopiaApplicationContext(dbConfiguration); onRootCtxtCreate(rootCtxt); @@ -156,15 +155,15 @@ } } - protected void onRootCtxtCreate(TopiaContext rootCtxt) { + protected void onRootCtxtCreate(SammoaTopiaApplicationContext rootCtxt) { persistence.setRootContext(rootCtxt); } - public TopiaContext beginTransaction() throws TopiaException { + public SammoaTopiaPersistenceContext beginTransaction() throws TopiaException { return persistence.beginTransaction(); } - public void endTransaction(TopiaContext transaction) { + public void endTransaction(SammoaTopiaPersistenceContext transaction) { persistence.endTransaction(transaction); } @@ -174,15 +173,15 @@ public Campaign createCampaign(String code, String regionCode) throws TopiaException { - TopiaContext transaction = beginTransaction(); + SammoaTopiaPersistenceContext transaction = beginTransaction(); - RegionDAO regionDAO = SammoaDAOHelper.getRegionDAO(transaction); + RegionTopiaDao regionDAO = transaction.getRegionDao(); Region region = regionDAO.createByNaturalId(regionCode); - CampaignDAO campaignDAO = SammoaDAOHelper.getCampaignDAO(transaction); + CampaignTopiaDao campaignDAO = transaction.getCampaignDao(); Campaign result = campaignDAO.createByNaturalId(code, region); - transaction.commitTransaction(); + transaction.commit(); endTransaction(transaction); return result; @@ -192,7 +191,7 @@ return testBasedir; } - public TopiaContext getRootCtxt() { + public SammoaTopiaApplicationContext getRootCtxt() { return rootCtxt; } @@ -216,7 +215,7 @@ stream.close(); } result.setProperty( - TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES, + TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, getImplementationClassesAsString()); return result; Modified: trunk/sammoa-persistence/src/test/resources/sammoa-test.properties =================================================================== --- trunk/sammoa-persistence/src/test/resources/sammoa-test.properties 2014-05-16 08:08:04 UTC (rev 664) +++ trunk/sammoa-persistence/src/test/resources/sammoa-test.properties 2014-05-16 08:16:53 UTC (rev 665) @@ -37,4 +37,4 @@ hibernate.connection.driver_class=org.h2.Driver #Not necessary, but useful -hibernate.connection.provider_class=org.nuiton.topia.framework.TopiaConnectionProvider +#hibernate.connection.provider_class=org.nuiton.topia.framework.TopiaConnectionProvider
participants (1)
-
athimelï¼ users.forge.codelutin.com