Author: tchemit Date: 2013-12-22 01:29:17 +0100 (Sun, 22 Dec 2013) New Revision: 925 Url: http://forge.codelutin.com/projects/echobase/repository/revisions/925 Log: refactor topia 3.0 Added: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/AbstractEchoBaseDao.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseInternalPersistenceContext.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserPersistenceContext.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserTopiaDao.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserTopiaPersistenceContext.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryTopiaDao.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CategoryTopiaDao.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CellTopiaDao.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/EchotypeTopiaDao.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/ResultTopiaDao.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaApplicationContexts.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchobaseAieOC.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ServiceEchobaseAieOC.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseUserDbTransactionFilter.java Removed: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseInternalPersistenceContext.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBasePersistenceContext.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserDAOImpl.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryDAOImpl.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBaseInternalPersistenceContext.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBasePersistenceContext.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CategoryDAOImpl.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CellDAOImpl.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/EchotypeDAOImpl.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/ResultDAOImpl.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/InternalDbPersistenceService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/WorkingDbPersistenceService.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseWorkingDbTransactionFilter.java Modified: trunk/echobase-domain/pom.xml trunk/echobase-domain/src/main/java/fr/ifremer/echobase/csv/CellValueParser.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/csv/EchoBaseCsvUtil.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseDbMeta.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBasePersistenceHelper.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/JdbcConfiguration.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/EchoBaseMigrationCallBackResolver.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion2_2.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallback.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_2.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_5_1.java trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallback.java trunk/echobase-domain/src/main/resources/echobase-internaldb.properties trunk/echobase-domain/src/main/resources/echobase-workingdb.properties trunk/echobase-domain/src/main/xmi/echobase-internal.properties trunk/echobase-domain/src/main/xmi/echobase.properties trunk/echobase-domain/src/main/xmi/echobase.zargo trunk/echobase-domain/src/test/java/fr/ifremer/echobase/persistence/EchoBaseDbMetaTest.java trunk/echobase-services/pom.xml trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ProgressModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DecoratorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/embeddedapplication/EmbeddedApplicationService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportdb/ExportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportdb/ExportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/GenericSQLQuery.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AbstractImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AcousticImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CatchesImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonAllImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonTransectImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonTransitImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonVoyageImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/EchoBaseCsvFileImportResult.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/OperationImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsEsduCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsMapFishCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsMapOtherCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsRegionCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsVoyageImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/BiometrySampleImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EchotypeImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/GearMetadataValueImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/LengthAgeKeyImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/LengthWeightKeyImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MapCellImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/OperationImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/OperationMetadataValueImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellAssociationImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellResultImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/SubSampleImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TotalSampleImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TransectImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TransitImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/EchoBaseImportModelFactory.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/EchoBaseImportStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/spatial/SpatialService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/workingDb/WorkingDbConfigurationService.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FixCellsIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/DecoratorServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/exportdb/ExportDbServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/CommonTransectImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/CommonTransitImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdb/ImportDbServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CatchesRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransitRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/OperationRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultEsduRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultMapRemoveFishDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultMapRemoveOtherDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultRegionRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultVoyageRemoveDataServiceTest.java trunk/echobase-ui/pom.xml trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractConfigureAction.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractWaitAndExecAction.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetForeignEntities.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Configure.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Configure.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/AbstractEditExportQuery.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ConfirmDeleteExportQuery.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CreateNewExportQuery.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DeleteExportQuery.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DownloadExportQueryResult.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/EditExportQuery.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ExportQueryResult.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/GetExportQueryResult.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/NewLibreOfficeQuery.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ShowExportQuery.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractConfigureImport.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAcousticImport.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesImport.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCommonImport.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperationImport.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureResultsImport.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/CreateMission.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetDataProcessingsForVoyage.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVesselsForVoyage.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/SelectImportType.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/ConfirmDelete.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/ImportLogs.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/AbstractGetVoyage.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetSpatialData.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageDataMetadata.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageEchotype.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageSpecies.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/ShowSpatialData.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Login.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/AbstractWorkingDbAction.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/AddSpatial.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Connect.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/CreatePostgresDb.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Disconnect.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/GetImportLogDetail.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/GetVoyage.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/EchoBaseInjectInterceptor.java trunk/echobase-ui/src/main/webapp/WEB-INF/web.xml trunk/pom.xml Modified: trunk/echobase-domain/pom.xml =================================================================== --- trunk/echobase-domain/pom.xml 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/pom.xml 2013-12-22 00:29:17 UTC (rev 925) @@ -2,10 +2,6 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <!-- ************************************************************* --> - <!-- *** POM Relationships *************************************** --> - <!-- ************************************************************* --> - <parent> <groupId>fr.ifremer</groupId> <artifactId>echobase</artifactId> @@ -31,7 +27,7 @@ <templates> org.nuiton.eugene.java.JavaInterfaceTransformer, org.nuiton.eugene.java.JavaBeanTransformer, - org.nuiton.topia.generator.TopiaMetaTransformer + org.nuiton.topia.templates.TopiaMetaTransformer </templates> </configuration> <executions> @@ -85,6 +81,11 @@ <scope>compile</scope> </dependency> <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-templates</artifactId> + <version>${topiaVersion}</version> + </dependency> + <dependency> <groupId>org.nuiton</groupId> <artifactId>nuiton-utils</artifactId> <version>${nuitonUtilsVersion}</version> @@ -189,6 +190,11 @@ </dependency> <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-service-csv</artifactId> + </dependency> + + <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/csv/CellValueParser.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/csv/CellValueParser.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/csv/CellValueParser.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,12 +24,12 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.CellDAO; +import fr.ifremer.echobase.entities.data.CellTopiaDao; import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.collections.CollectionUtils; import org.nuiton.csv.ImportRuntimeException; import org.nuiton.csv.ValueParser; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.text.ParseException; import java.util.List; @@ -41,9 +41,9 @@ private final Map<String, Cell> esduCellMap; - private CellDAO cellDAO; + private CellTopiaDao cellDAO; - public CellValueParser(Voyage voyage, CellDAO cellDAO) { + public CellValueParser(Voyage voyage, CellTopiaDao cellDAO) { this.voyage = voyage; this.esduCellMap = Maps.newTreeMap(); this.cellDAO = cellDAO; @@ -105,7 +105,7 @@ if (result == null && cellDAO != null) { try { - List<Cell> cells = cellDAO.findAllByName(esduCellId); + List<Cell> cells = cellDAO.forNameEquals(esduCellId).findAll(); if (CollectionUtils.isEmpty(cells)) { throw new ImportRuntimeException( Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/csv/EchoBaseCsvUtil.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/csv/EchoBaseCsvUtil.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/csv/EchoBaseCsvUtil.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,12 +23,11 @@ package fr.ifremer.echobase.csv; import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.CellDAO; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataQuality; -import org.nuiton.topia.persistence.csv.TopiaCsvCommons; +import org.nuiton.topia.service.csv.TopiaCsvCommons; import org.nuiton.csv.ValueParser; import org.nuiton.csv.ValueSetter; @@ -75,7 +74,7 @@ @Override protected Float parseNoneEmptyValue(String value) { - Float result = null; + Float result; if (!"NA".equals(value)) { result = super.parseNoneEmptyValue(value); } else { Added: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/AbstractEchoBaseDao.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/AbstractEchoBaseDao.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/AbstractEchoBaseDao.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,31 @@ +package fr.ifremer.echobase.entities; + +import org.nuiton.topia.persistence.TopiaNoResultException; +import org.nuiton.topia.persistence.internal.AbstractTopiaDao; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.util.Map; + +/** + * Created on 12/19/13. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 1.6 + */ +public abstract class AbstractEchoBaseDao<E extends TopiaEntity> extends AbstractTopiaDao<E> { + + @Override + public InnerTopiaQueryBuilderRunQueryStep<E> forHql(String hql, Map<String, Object> hqlParameters) { + return super.forHql(hql, hqlParameters); + } + + @Override + public String newFromClause(String alias) { + return super.newFromClause(alias); + } + + @Override + public <K> K findAny(String hql, Map<String, Object> hqlParameters) throws TopiaNoResultException { + return super.findAny(hql, hqlParameters); + } +} Property changes on: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/AbstractEchoBaseDao.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseInternalPersistenceContext.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseInternalPersistenceContext.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseInternalPersistenceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,37 +0,0 @@ -package fr.ifremer.echobase.entities; - -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import org.nuiton.topia.TopiaPersistenceContext; -import org.nuiton.topia.TopiaReplicationSupport; -import org.nuiton.topia.TopiaTransaction; - -/** - * TODO - * - * @author tchemit <chemit@codelutin.com> - * @since 2.2 - */ -public interface EchoBaseInternalPersistenceContext extends TopiaTransaction, TopiaPersistenceContext, TopiaReplicationSupport { -} Added: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseInternalPersistenceContext.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseInternalPersistenceContext.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseInternalPersistenceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,13 @@ +package fr.ifremer.echobase.entities; + +import org.nuiton.topia.persistence.TopiaPersistenceContext; + +/** + * Created on 12/19/13. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 1.6 + */ +public interface EchoBaseInternalPersistenceContext extends TopiaPersistenceContext, EchoBaseInternalTopiaDaoSupplier{ + +} \ No newline at end of file Property changes on: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseInternalPersistenceContext.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBasePersistenceContext.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBasePersistenceContext.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBasePersistenceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,40 +0,0 @@ -package fr.ifremer.echobase.entities; - -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaPersistenceContext; -import org.nuiton.topia.TopiaSqlSupport; -import org.nuiton.topia.TopiaTransaction; - -/** - * TODO - * - * @author tchemit <chemit@codelutin.com> - * @since 2.2 - */ -public interface EchoBasePersistenceContext extends TopiaTransaction, TopiaPersistenceContext, TopiaSqlSupport { - - TopiaContext getContext(); -} Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserDAOImpl.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserDAOImpl.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserDAOImpl.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,46 +0,0 @@ -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2012 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.echobase.entities; - -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.pager.TopiaPagerBean; - -import java.util.List; - -public class EchoBaseUserDAOImpl<E extends EchoBaseUser> extends EchoBaseUserDAOAbstract<E> { - - public List<E> findAll(TopiaPagerBean pager) throws TopiaException { - List<E> users; - - if (pager == null) { - - users = findAll(); - } else { - - String hql = "FROM " + getTopiaEntityEnum().getImplementationFQN(); - computeAndAddRecordsToPager("SELECT COUNT(*) " + hql, pager); - users = findAllByQuery(hql); - } - return users; - } -} Added: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserPersistenceContext.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserPersistenceContext.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserPersistenceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,24 @@ +package fr.ifremer.echobase.entities; + +import org.nuiton.topia.persistence.support.TopiaHibernateSupport; +import org.nuiton.topia.persistence.TopiaPersistenceContext; +import org.nuiton.topia.persistence.support.TopiaSqlSupport; + +/** + * Created on 12/19/13. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 1.6 + */ +public interface EchoBaseUserPersistenceContext extends TopiaPersistenceContext, EchoBaseUserTopiaDaoSupplier { + + boolean isPostgresql(); + + boolean isSpatialAware(); + + String getUrl(); + + TopiaHibernateSupport getHibernateSupport(); + + TopiaSqlSupport getSqlSupport(); +} Property changes on: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserPersistenceContext.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Copied: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserTopiaDao.java (from rev 924, trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserDAOImpl.java) =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserTopiaDao.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserTopiaDao.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,45 @@ +/* + * #%L + * EchoBase :: Domain + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.echobase.entities; + +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.pager.TopiaPagerBean; + +import java.util.List; + +public class EchoBaseUserTopiaDao extends AbstractEchoBaseUserTopiaDao<EchoBaseUser> { + + public List<EchoBaseUser> findAll(TopiaPagerBean pager) throws TopiaException { + List<EchoBaseUser> users; + + if (pager == null) { + + users = findAll(); + } else { + + //FIXME Let's init the pager + users = forHql(newFromClause()).find(pager); + } + return users; + } +} Added: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserTopiaPersistenceContext.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserTopiaPersistenceContext.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserTopiaPersistenceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,45 @@ +package fr.ifremer.echobase.entities; + +import org.hibernate.cfg.Environment; +import org.nuiton.topia.persistence.support.TopiaListenableSupport; +import org.nuiton.topia.persistence.internal.HibernateProvider; +import org.nuiton.topia.persistence.internal.TopiaHibernateSessionRegistry; +import org.nuiton.topia.persistence.TopiaIdFactory; + +public class EchoBaseUserTopiaPersistenceContext extends AbstractEchoBaseUserTopiaPersistenceContext { + + public EchoBaseUserTopiaPersistenceContext(HibernateProvider hibernateProvider, TopiaListenableSupport listenableSupport, TopiaIdFactory topiaIdFactory, TopiaHibernateSessionRegistry sessionRegistry) { + super(hibernateProvider, listenableSupport, topiaIdFactory, sessionRegistry); + } + + @Override + public boolean isPostgresql() { + String dialect = getHibernateSupport().getHibernateConfiguration().getProperty(Environment.DIALECT); + + return DriverType.POSTGRESQL.getDialectClass().getName().equals(dialect); + } + + @Override + public boolean isSpatialAware() { + boolean result = isPostgresql(); + + if (result) { + + // on pg db, check there is now a echobase_spatial_cell + try { + getSqlSupport().executeSql("select count(*) from echobase_cell_spatial;"); + } catch (Exception e) { + // table not found (or other, ...) + result = false; + // rollback (otherwise transaction will stay dirty) + rollback(); + } + } + return result; + } + + @Override + public String getUrl() { + return getHibernateSupport().getHibernateConfiguration().getProperty(Environment.URL); + } +} Property changes on: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserTopiaPersistenceContext.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryDAOImpl.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryDAOImpl.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryDAOImpl.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,52 +0,0 @@ -package fr.ifremer.echobase.entities; - -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2012 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import org.nuiton.topia.TopiaException; - -public class ExportQueryDAOImpl<E extends ExportQuery> extends ExportQueryDAOAbstract<E> { - - public boolean isQueryExists(String queryName) throws TopiaException { - - String hql = "SELECT COUNT(*)" + - " FROM " + getTopiaEntityEnum().getImplementationFQN() + - " WHERE " + ExportQuery.PROPERTY_NAME + " = :name"; - - boolean result = existsByQuery(hql, new String[]{"name", queryName}); - return result; - } - - public boolean isQueryExists(String id, String queryName) throws TopiaException { - - String hql = "SELECT COUNT(*)" + - " FROM " + getTopiaEntityEnum().getImplementationFQN() + - " WHERE " + ExportQuery.PROPERTY_NAME + " = :name" + - " AND " + ExportQuery.PROPERTY_TOPIA_ID + " != :id"; - - boolean result = existsByQuery( - hql, - new String[]{"name", queryName, "id", id}); - return result; - } -} Copied: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryTopiaDao.java (from rev 924, trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryDAOImpl.java) =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryTopiaDao.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ExportQueryTopiaDao.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,57 @@ +package fr.ifremer.echobase.entities; + +/* + * #%L + * EchoBase :: Domain + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import org.nuiton.topia.persistence.TopiaException; + +public class ExportQueryTopiaDao extends AbstractExportQueryTopiaDao<ExportQuery> { + + public boolean isQueryExists(String queryName) throws TopiaException { + +// String hql = "SELECT COUNT(*)" + +// " FROM " + getTopiaEntityEnum().getImplementationFQN() + +// " WHERE " + ExportQuery.PROPERTY_NAME + " = :name"; +// +// boolean result = existsByQuery(hql, new String[]{"name", queryName}); +// return result; + boolean result = forNameEquals(queryName).exists(); + return result; + } + + public boolean isQueryExists(String id, String queryName) throws TopiaException { + +// String hql = "SELECT COUNT(*)" + +// " FROM " + getTopiaEntityEnum().getImplementationFQN() + +// " WHERE " + ExportQuery.PROPERTY_NAME + " = :name" + +// " AND " + ExportQuery.PROPERTY_TOPIA_ID + " != :id"; +// +// boolean result = existsByQuery( +// hql, +// new String[]{"name", queryName, "id", id}); + boolean result = forNameEquals(queryName). + addNotEquals(ExportQuery.PROPERTY_TOPIA_ID, id). + exists(); + return result; + } +} Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBaseInternalPersistenceContext.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBaseInternalPersistenceContext.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBaseInternalPersistenceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,173 +0,0 @@ -package fr.ifremer.echobase.entities; - -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaPersistenceContext; -import org.nuiton.topia.TopiaReplicationSupport; -import org.nuiton.topia.TopiaTransaction; -import org.nuiton.topia.framework.TopiaSQLQuery; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaIdFactory; - -import java.util.List; -import java.util.Properties; - -public class TopiaEchoBaseInternalPersistenceContext extends AbstractTopiaEchoBaseInternalPersistenceContext { - - public TopiaEchoBaseInternalPersistenceContext(TopiaContext context) { - super(context); - } - - @Override - public void commitTransaction() { - getTransaction().commitTransaction(); - } - - @Override - public void rollbackTransaction() { - getTransaction().rollbackTransaction(); - } - - @Override - public void closeContext() { - getTransaction().closeContext(); - } - - @Override - public boolean isClosed() { - return getTransaction().isClosed(); - } - - @Override - public <E extends TopiaEntity> E findByTopiaId(java.lang.String topiaId) { - return getPersistenceContext().findByTopiaId(topiaId); - } - - @Override - public void update(TopiaEntity entity) { - getPersistenceContext().update(entity); - } - - @Override - public TopiaIdFactory getTopiaIdFactory() { - return getPersistenceContext().getTopiaIdFactory(); - } - - @Override - public List<Class<?>> getPersistenceClasses() { - return getPersistenceContext().getPersistenceClasses(); - } - - @Override - public void setUseFlushMode(boolean useFlushMode) { - getPersistenceContext().setUseFlushMode(useFlushMode); - } - - @Override - public Properties getConfig() { - return getPersistenceContext().getConfig(); - } - - @Override - public <E extends TopiaEntity> TopiaDAO<E> getDAO(Class<E> entityClass) { - return getPersistenceContext().getDAO(entityClass); - } - - @Override - public <E extends TopiaEntity, D extends TopiaDAO<E>> D getDAO(Class<E> entityClass, Class<D> daoClass) { - return getPersistenceContext().getDAO(entityClass, daoClass); - } - - @Override - public boolean isSchemaEmpty() { - return getPersistenceContext().isSchemaEmpty(); - } - - @Override - public boolean isTableExists(Class<?> clazz) { - return getPersistenceContext().isTableExists(clazz); - } - - @Override - public java.lang.String getSchemaName() { - return getPersistenceContext().getSchemaName(); - } - - @Override - public void createSchema() { - getPersistenceContext().createSchema(); - } - - @Override - public void showCreateSchema() { - getPersistenceContext().showCreateSchema(); - } - - @Override - public void updateSchema() { - getPersistenceContext().updateSchema(); - } - - @Override - public void dropSchema() { - getPersistenceContext().dropSchema(); - } - - @Override - public void replicate(TopiaContext destinationContext, Object... entityAndCondition) throws IllegalArgumentException { - getReplicationSupport().replicate(destinationContext, entityAndCondition); - } - - @Override - public <T extends TopiaEntity> void replicateEntity(TopiaContext destinationContext, T entity) throws IllegalArgumentException { - getReplicationSupport().replicateEntity(destinationContext, entity); - } - - @Override - public <T extends TopiaEntity> void replicateEntities(TopiaContext destinationContext, List<T> entities) throws IllegalArgumentException { - getReplicationSupport().replicateEntities(destinationContext, entities); - } - - public <R> R findSingleResult(TopiaSQLQuery<R> sqlQuery) { - return sqlQuery.findSingleResult(context); - } - - public <R> List<R> findMultipleResult(TopiaSQLQuery<R> sqlQuery) { - return sqlQuery.findMultipleResult(context); - } - - protected TopiaTransaction getTransaction() { - return context; - } - - protected TopiaPersistenceContext getPersistenceContext() { - return context; - } - - protected TopiaReplicationSupport getReplicationSupport() { - return context; - } -} Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBasePersistenceContext.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBasePersistenceContext.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/TopiaEchoBasePersistenceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,266 +0,0 @@ -package fr.ifremer.echobase.entities; - -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import com.google.common.base.Charsets; -import com.google.common.base.Preconditions; -import fr.ifremer.echobase.EchoBaseTechnicalException; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaContextFactory; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaPersistenceContext; -import org.nuiton.topia.TopiaSqlSupport; -import org.nuiton.topia.TopiaTransaction; -import org.nuiton.topia.framework.TopiaSQLQuery; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaIdFactory; - -import java.io.IOException; -import java.io.InputStream; -import java.util.List; -import java.util.Properties; - -public class TopiaEchoBasePersistenceContext extends AbstractTopiaEchoBasePersistenceContext { - - /** Logger. */ - private static final Log log = - LogFactory.getLog(TopiaEchoBasePersistenceContext.class); - - public TopiaEchoBasePersistenceContext(TopiaContext context) { - super(context); - } - - @Override - public void commitTransaction() { - getTransaction().commitTransaction(); - } - - @Override - public void rollbackTransaction() { - getTransaction().rollbackTransaction(); - } - - @Override - public void closeContext() { - getTransaction().closeContext(); - } - - @Override - public boolean isClosed() { - return getTransaction().isClosed(); - } - - @Override - public <E extends TopiaEntity> E findByTopiaId(java.lang.String topiaId) { - return getPersistenceContext().findByTopiaId(topiaId); - } - - @Override - public void update(TopiaEntity entity) { - getPersistenceContext().update(entity); - } - - @Override - public TopiaIdFactory getTopiaIdFactory() { - return getPersistenceContext().getTopiaIdFactory(); - } - - @Override - public List<Class<?>> getPersistenceClasses() { - return getPersistenceContext().getPersistenceClasses(); - } - - @Override - public void setUseFlushMode(boolean useFlushMode) { - getPersistenceContext().setUseFlushMode(useFlushMode); - } - - @Override - public Properties getConfig() { - return getPersistenceContext().getConfig(); - } - - @Override - public <E extends TopiaEntity> TopiaDAO<E> getDAO(Class<E> entityClass) { - return getPersistenceContext().getDAO(entityClass); - } - - @Override - public <E extends TopiaEntity, D extends TopiaDAO<E>> D getDAO(Class<E> entityClass, Class<D> daoClass) { - return getPersistenceContext().getDAO(entityClass, daoClass); - } - - @Override - public boolean isSchemaEmpty() { - return getPersistenceContext().isSchemaEmpty(); - } - - @Override - public boolean isTableExists(Class<?> clazz) { - return getPersistenceContext().isTableExists(clazz); - } - - @Override - public java.lang.String getSchemaName() { - return getPersistenceContext().getSchemaName(); - } - - @Override - public void createSchema() { - getPersistenceContext().createSchema(); - } - - @Override - public void showCreateSchema() { - getPersistenceContext().showCreateSchema(); - } - - @Override - public void updateSchema() { - getPersistenceContext().updateSchema(); - } - - @Override - public void dropSchema() { - getPersistenceContext().dropSchema(); - } - - @Override - public void executeSQL(String sqlScript) { - getTopiaSqlSupport().executeSQL(sqlScript); - } - - protected void executeInClassPathSQL(String scriptPath) { - - // get sql file - InputStream inputStream = getClass().getResourceAsStream(scriptPath); - - Preconditions.checkNotNull( - inputStream, - "Could not find resource in classpath " + scriptPath); - - String sql; - try { - sql = IOUtils.toString(inputStream, Charsets.UTF_8); - } catch (IOException e) { - throw new EchoBaseTechnicalException( - "Could not load sql file " + scriptPath, e); - } - - if (log.isInfoEnabled()) { - log.info("Will execute sql file " + scriptPath); - } - - try { - executeSQL(sql); - } catch (Exception e) { - throw new EchoBaseTechnicalException( - "Could not execute sql file " + scriptPath, e); - } - } - - public final <E extends TopiaEntity> E getEntityById(Class<E> entityType, String id) { - Preconditions.checkNotNull(entityType); - Preconditions.checkArgument(StringUtils.isNotEmpty(id)); - try { - E result = getDAO(entityType).findByTopiaId(id); - return result; - } catch (TopiaException eee) { - throw new EchoBaseTechnicalException( - "Could not obtain data of id [" + id + "] for type " + - entityType, eee); - } - } - - public final <E extends TopiaEntity> E getEntityOrNullById(Class<E> entityType, String id) { - Preconditions.checkNotNull(entityType); - if (StringUtils.isBlank(id)) { - return null; - } - return getEntityById(entityType, id); - } - - public void flush() { - context.getHibernateSession().flush(); - } - - public void clear() { - context.getHibernateSession().clear(); - } - - protected TopiaTransaction getTransaction() { - return context; - } - - protected TopiaSqlSupport getTopiaSqlSupport() { - return context; - } - - protected TopiaPersistenceContext getPersistenceContext() { - return context; - } - - @Override - public TopiaContext getContext() { - return context; - } - - public <R> R findSingleResult(TopiaSQLQuery<R> sqlQuery) { - return sqlQuery.findSingleResult(context); - } - - public <R> List<R> findMultipleResult(TopiaSQLQuery<R> sqlQuery) { - return sqlQuery.findMultipleResult(context); - } - - public boolean isPostgresql() { - String dialect = context.getHibernateConfiguration().getProperty(TopiaContextFactory.CONFIG_DIALECT); - - return DriverType.POSTGRESQL.getDialectClass().getName().equals(dialect); - } - - public boolean isSpatialAware() { - boolean result = isPostgresql(); - - if (result) { - - // on pg db, check there is now a echobase_spatial_cell - try { - executeSQL("select count(*) from echobase_cell_spatial;"); - } catch (Exception e) { - // table not found (or other, ...) - result = false; - // rollback (otherwise transaction will stay dirty) - rollbackTransaction(); - } - } - return result; - } - -} Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CategoryDAOImpl.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CategoryDAOImpl.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CategoryDAOImpl.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,51 +0,0 @@ -package fr.ifremer.echobase.entities.data; - -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import fr.ifremer.echobase.EchoBaseTechnicalException; -import org.nuiton.topia.TopiaException; - -import java.util.List; - -public class CategoryDAOImpl<E extends Category> extends CategoryDAOAbstract<E> { - - public List<E> getCategoryUsingEchotype(Voyage voyage) throws TopiaException { - String hql = "SELECT DISTINCT c FROM VoyageImpl v, CategoryImpl c WHERE " + - "v = :voyage AND c.echotype in elements(v.echotype)"; - List<E> result = findAllByQuery(hql, "voyage", voyage); - return result; - } - - public long countCategoryUsingEchotype(Voyage voyage) { - String hql = "SELECT COUNT(DISTINCT c) FROM VoyageImpl v, CategoryImpl c WHERE " + - "v = :voyage AND c.echotype in elements(v.echotype)"; - try { - long result = countByQuery(hql, "voyage", voyage); - return result; - } catch (TopiaException e) { - throw new EchoBaseTechnicalException(e); - } - } - -} //CategoryDAOImpl<E extends Category> Copied: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CategoryTopiaDao.java (from rev 924, trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CategoryDAOImpl.java) =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CategoryTopiaDao.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CategoryTopiaDao.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,54 @@ +package fr.ifremer.echobase.entities.data; + +/* + * #%L + * EchoBase :: Domain + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2013 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import fr.ifremer.echobase.EchoBaseTechnicalException; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.util.TopiaUtil; + +import java.util.List; + +public class CategoryTopiaDao extends AbstractCategoryTopiaDao<Category> { + + public List<Category> getCategoryUsingEchotype(Voyage voyage) throws TopiaException { + String hql = "SELECT DISTINCT c FROM VoyageImpl v, CategoryImpl c WHERE " + + "v = :voyage AND c.echotype in elements(v.echotype)"; +// List<Category> result = findAllByQuery(hql, "voyage", voyage); + List<Category> result = forHql(hql, "voyage", voyage).findAll(); + return result; + } + + public long countCategoryUsingEchotype(Voyage voyage) { + String hql = "SELECT COUNT(DISTINCT c) FROM VoyageImpl v, CategoryImpl c WHERE " + + "v = :voyage AND c.echotype in elements(v.echotype)"; + try { +// long result = countByQuery(hql, "voyage", voyage); + Long result = findUnique(hql, TopiaUtil.convertPropertiesArrayToMap("voyage", voyage)); + return result; + } catch (TopiaException e) { + throw new EchoBaseTechnicalException(e); + } + } + +} //CategoryDAOImpl<E extends Category> Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CellDAOImpl.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CellDAOImpl.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CellDAOImpl.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,224 +0,0 @@ -package fr.ifremer.echobase.entities.data; - -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import com.google.common.collect.Lists; -import fr.ifremer.echobase.csv.CellValueParser; -import fr.ifremer.echobase.entities.references.CellType; -import fr.ifremer.echobase.entities.spatial.CellPoint; -import org.nuiton.csv.ValueParser; -import org.nuiton.topia.TopiaException; -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; - -public class CellDAOImpl<E extends Cell> extends CellDAOAbstract<E> { - - public List<CellPoint> getVoyageCellPoints(Voyage voyage, CellType cellType) { - - List<CellPoint> result = Lists.newArrayList(); - - String voyageId = voyage.getTopiaId(); - String cellTypeId = cellType == null ? null : cellType.getTopiaId(); - - TopiaSQLQuery<CellPoint> queryPoint = newLatLongSqlQuery(voyageId, cellTypeId); - TopiaSQLQuery<CellPoint> queryPoint3D = newLatLongDepthSqlQuery(voyageId, cellTypeId); - - result.addAll(queryPoint.findMultipleResult(context)); - result.addAll(queryPoint3D.findMultipleResult(context)); - return result; - } - - public long countVoyageOrphanCells(Voyage voyage) { - TopiaSQLQuery<Long> query = newCountVoyageOrphanCellsQuery(voyage); - Long result = query.findSingleResult(context); - return result; - } - - public long countVoyageCellResults(Voyage voyage) { - TopiaSQLQuery<Long> query = newCountVoyageCellResultsQuery(voyage); - Long result = query.findSingleResult(context); - return result; - } - - public List<String> getVoyageCellIds() throws TopiaException { - TopiaSQLQuery<String> query = newVoyageCellIdsQuery(); - List<String> cellIds = query.findMultipleResult(context); - return cellIds; - } - - public List<String> getVoyageCellIds(Voyage voyage) throws TopiaException { - TopiaSQLQuery<String> query = newVoyageCellIdsQuery(voyage); - - List<String> cellIds = query.findMultipleResult(context); - return cellIds; - } - - public ValueParser<Cell> newCellValueParser(Voyage voyage) { - return new CellValueParser(voyage, (CellDAO)this); - } - - protected TopiaSQLQuery<CellPoint> newLatLongSqlQuery(final String voyageId, final String cellTypeId) { - return new TopiaSQLQuery<CellPoint>() { - @Override - protected PreparedStatement prepareQuery(Connection connection) throws SQLException { - - PreparedStatement ps = connection.prepareStatement("SELECT cellId, ST_Y(ST_ASTEXT(coordinate)), ST_X(ST_ASTEXT(coordinate)) FROM echobase_cell_spatial WHERE coordinate IS NOT NULL AND voyageId = ? AND celltypeid = ?"); - ps.setString(1, voyageId); - ps.setString(2, cellTypeId); - return ps; - } - - @Override - protected CellPoint prepareResult(ResultSet set) throws SQLException { - String cellId = set.getString(1); - Double latitude = set.getDouble(2); - Double longitude = set.getDouble(3); - return new CellPoint(cellId, latitude, longitude, 0d); - } - }; - } - - protected TopiaSQLQuery<CellPoint> newLatLongDepthSqlQuery(final String voyageId, final String cellTypeId) { - return new TopiaSQLQuery<CellPoint>() { - @Override - protected PreparedStatement prepareQuery(Connection connection) throws SQLException { - - PreparedStatement ps = connection.prepareStatement("SELECT cellId, ST_Y(ST_ASTEXT(coordinate3D)), ST_X(ST_ASTEXT(coordinate3D)) , ST_Y(ST_ASTEXT(coordinate3D)) FROM echobase_cell_spatial WHERE coordinate3D IS NOT NULL AND voyageId = ? AND celltypeid = ?"); - ps.setString(1, voyageId); - ps.setString(2, cellTypeId); - return ps; - } - - @Override - protected CellPoint prepareResult(ResultSet set) throws SQLException { - String cellId = set.getString(1); - Double latitude = set.getDouble(2); - Double longitude = set.getDouble(3); - Double depth = set.getDouble(4); - return new CellPoint(cellId, latitude, longitude, depth); - } - }; - } - - protected TopiaSQLQuery<Long> newCountVoyageOrphanCellsQuery(final Voyage voyage) { - return new TopiaSQLQuery<Long>() { - @Override - protected PreparedStatement prepareQuery(Connection connection) throws SQLException { - String hql = "SELECT count(c2.topiaid) FROM Transit ta, " + - " Transect te, " + - " DataAcquisition da, " + - " DataProcessing dp, " + - " Cell c, Cell c2 " + - "WHERE ta.voyage = ? " + - "AND ta.topiaId = te.transit " + - "AND te.topiaId = da.transect " + - "AND da.topiaId = dp.dataacquisition " + - "AND dp.topiaId = c.dataprocessing " + - "AND c.topiaId = c2.cell"; - PreparedStatement result = connection.prepareStatement(hql); - result.setString(1, voyage.getTopiaId()); - return result; - } - - @Override - protected Long prepareResult(ResultSet set) throws SQLException { - return set.getLong(1); - } - }; - } - - protected TopiaSQLQuery<Long> newCountVoyageCellResultsQuery(final Voyage voyage) { - return new TopiaSQLQuery<Long>() { - @Override - protected PreparedStatement prepareQuery(Connection connection) throws SQLException { - String hql = "SELECT count(c.topiaid) FROM Transit ta, " + - " Transect te, " + - " DataAcquisition da, " + - " DataProcessing dp, " + - " Cell c " + - "WHERE ta.voyage = ? " + - "AND ta.topiaId = te.transit " + - "AND te.topiaId = da.transect " + - "AND da.topiaId = dp.dataacquisition " + - "AND dp.topiaId = c.dataprocessing"; - PreparedStatement result = connection.prepareStatement(hql); - result.setString(1, voyage.getTopiaId()); - return result; - } - - @Override - protected Long prepareResult(ResultSet set) throws SQLException { - return set.getLong(1); - } - }; - } - - protected TopiaSQLQuery<String> newVoyageCellIdsQuery() { - return new TopiaSQLQuery<String>() { - @Override - protected PreparedStatement prepareQuery(Connection connection) throws SQLException { - String hql = "SELECT c.topiaid FROM Cell c " + - "WHERE c.cell IS NULL AND c.dataprocessing IS NULL AND c.voyage IS NULL"; - PreparedStatement result = connection.prepareStatement(hql); - return result; - } - - @Override - protected String prepareResult(ResultSet set) throws SQLException { - return set.getString(1); - } - }; - } - - protected TopiaSQLQuery<String> newVoyageCellIdsQuery(final Voyage voyage) { - return new TopiaSQLQuery<String>() { - @Override - protected PreparedStatement prepareQuery(Connection connection) throws SQLException { - String hql = "SELECT c.topiaid FROM Transit ta, " + - " Transect te, " + - " DataAcquisition da, " + - " DataProcessing dp, " + - " Cell c " + - "WHERE ta.voyage = ? " + - "AND ta.topiaId = te.transit " + - "AND te.topiaId = da.transect " + - "AND da.topiaId = dp.dataacquisition " + - "AND dp.topiaId = c.dataprocessing"; - PreparedStatement result = connection.prepareStatement(hql); - result.setString(1, voyage.getTopiaId()); - return result; - } - - @Override - protected String prepareResult(ResultSet set) throws SQLException { - return set.getString(1); - } - }; - } -} Copied: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CellTopiaDao.java (from rev 924, trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CellDAOImpl.java) =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CellTopiaDao.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/CellTopiaDao.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,224 @@ +package fr.ifremer.echobase.entities.data; + +/* + * #%L + * EchoBase :: Domain + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2013 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.google.common.collect.Lists; +import fr.ifremer.echobase.csv.CellValueParser; +import fr.ifremer.echobase.entities.references.CellType; +import fr.ifremer.echobase.entities.spatial.CellPoint; +import org.nuiton.csv.ValueParser; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.support.TopiaSqlQuery; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +public class CellTopiaDao extends AbstractCellTopiaDao<Cell> { + + public List<CellPoint> getVoyageCellPoints(Voyage voyage, CellType cellType) { + + List<CellPoint> result = Lists.newArrayList(); + + String voyageId = voyage.getTopiaId(); + String cellTypeId = cellType == null ? null : cellType.getTopiaId(); + + TopiaSqlQuery<CellPoint> queryPoint = newLatLongSqlQuery(voyageId, cellTypeId); + TopiaSqlQuery<CellPoint> queryPoint3D = newLatLongDepthSqlQuery(voyageId, cellTypeId); + + result.addAll(topiaSqlSupport.findMultipleResult(queryPoint)); + result.addAll(topiaSqlSupport.findMultipleResult(queryPoint3D)); + return result; + } + + public long countVoyageOrphanCells(Voyage voyage) { + TopiaSqlQuery<Long> query = newCountVoyageOrphanCellsQuery(voyage); + Long result = topiaSqlSupport.findSingleResult(query); + return result; + } + + public long countVoyageCellResults(Voyage voyage) { + TopiaSqlQuery<Long> query = newCountVoyageCellResultsQuery(voyage); + Long result = topiaSqlSupport.findSingleResult(query); + return result; + } + + public List<String> getVoyageCellIds() throws TopiaException { + TopiaSqlQuery<String> query = newVoyageCellIdsQuery(); + List<String> cellIds = topiaSqlSupport.findMultipleResult(query); + return cellIds; + } + + public List<String> getVoyageCellIds(Voyage voyage) throws TopiaException { + TopiaSqlQuery<String> query = newVoyageCellIdsQuery(voyage); + + List<String> cellIds = topiaSqlSupport.findMultipleResult(query); + return cellIds; + } + + public ValueParser<Cell> newCellValueParser(Voyage voyage) { + return new CellValueParser(voyage, this); + } + + protected TopiaSqlQuery<CellPoint> newLatLongSqlQuery(final String voyageId, final String cellTypeId) { + return new TopiaSqlQuery<CellPoint>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + + PreparedStatement ps = connection.prepareStatement("SELECT cellId, ST_Y(ST_ASTEXT(coordinate)), ST_X(ST_ASTEXT(coordinate)) FROM echobase_cell_spatial WHERE coordinate IS NOT NULL AND voyageId = ? AND celltypeid = ?"); + ps.setString(1, voyageId); + ps.setString(2, cellTypeId); + return ps; + } + + @Override + public CellPoint prepareResult(ResultSet set) throws SQLException { + String cellId = set.getString(1); + Double latitude = set.getDouble(2); + Double longitude = set.getDouble(3); + return new CellPoint(cellId, latitude, longitude, 0d); + } + }; + } + + protected TopiaSqlQuery<CellPoint> newLatLongDepthSqlQuery(final String voyageId, final String cellTypeId) { + return new TopiaSqlQuery<CellPoint>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + + PreparedStatement ps = connection.prepareStatement("SELECT cellId, ST_Y(ST_ASTEXT(coordinate3D)), ST_X(ST_ASTEXT(coordinate3D)) , ST_Y(ST_ASTEXT(coordinate3D)) FROM echobase_cell_spatial WHERE coordinate3D IS NOT NULL AND voyageId = ? AND celltypeid = ?"); + ps.setString(1, voyageId); + ps.setString(2, cellTypeId); + return ps; + } + + @Override + public CellPoint prepareResult(ResultSet set) throws SQLException { + String cellId = set.getString(1); + Double latitude = set.getDouble(2); + Double longitude = set.getDouble(3); + Double depth = set.getDouble(4); + return new CellPoint(cellId, latitude, longitude, depth); + } + }; + } + + protected TopiaSqlQuery<Long> newCountVoyageOrphanCellsQuery(final Voyage voyage) { + return new TopiaSqlQuery<Long>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + String hql = "SELECT count(c2.topiaid) FROM Transit ta, " + + " Transect te, " + + " DataAcquisition da, " + + " DataProcessing dp, " + + " Cell c, Cell c2 " + + "WHERE ta.voyage = ? " + + "AND ta.topiaId = te.transit " + + "AND te.topiaId = da.transect " + + "AND da.topiaId = dp.dataacquisition " + + "AND dp.topiaId = c.dataprocessing " + + "AND c.topiaId = c2.cell"; + PreparedStatement result = connection.prepareStatement(hql); + result.setString(1, voyage.getTopiaId()); + return result; + } + + @Override + public Long prepareResult(ResultSet set) throws SQLException { + return set.getLong(1); + } + }; + } + + protected TopiaSqlQuery<Long> newCountVoyageCellResultsQuery(final Voyage voyage) { + return new TopiaSqlQuery<Long>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + String hql = "SELECT count(c.topiaid) FROM Transit ta, " + + " Transect te, " + + " DataAcquisition da, " + + " DataProcessing dp, " + + " Cell c " + + "WHERE ta.voyage = ? " + + "AND ta.topiaId = te.transit " + + "AND te.topiaId = da.transect " + + "AND da.topiaId = dp.dataacquisition " + + "AND dp.topiaId = c.dataprocessing"; + PreparedStatement result = connection.prepareStatement(hql); + result.setString(1, voyage.getTopiaId()); + return result; + } + + @Override + public Long prepareResult(ResultSet set) throws SQLException { + return set.getLong(1); + } + }; + } + + protected TopiaSqlQuery<String> newVoyageCellIdsQuery() { + return new TopiaSqlQuery<String>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + String hql = "SELECT c.topiaid FROM Cell c " + + "WHERE c.cell IS NULL AND c.dataprocessing IS NULL AND c.voyage IS NULL"; + PreparedStatement result = connection.prepareStatement(hql); + return result; + } + + @Override + public String prepareResult(ResultSet set) throws SQLException { + return set.getString(1); + } + }; + } + + protected TopiaSqlQuery<String> newVoyageCellIdsQuery(final Voyage voyage) { + return new TopiaSqlQuery<String>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + String hql = "SELECT c.topiaid FROM Transit ta, " + + " Transect te, " + + " DataAcquisition da, " + + " DataProcessing dp, " + + " Cell c " + + "WHERE ta.voyage = ? " + + "AND ta.topiaId = te.transit " + + "AND te.topiaId = da.transect " + + "AND da.topiaId = dp.dataacquisition " + + "AND dp.topiaId = c.dataprocessing"; + PreparedStatement result = connection.prepareStatement(hql); + result.setString(1, voyage.getTopiaId()); + return result; + } + + @Override + public String prepareResult(ResultSet set) throws SQLException { + return set.getString(1); + } + }; + } +} Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/EchotypeDAOImpl.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/EchotypeDAOImpl.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/EchotypeDAOImpl.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,51 +0,0 @@ -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2012 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.echobase.entities.data; - -import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.TopiaException; - -import java.util.List; - -/** - * User {@link EchotypeDAO} implementation. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.2 - */ -public class EchotypeDAOImpl<E extends Echotype> extends EchotypeDAOAbstract<E> { - - @Override - public Echotype findByIdAndSpecies(Integer id, - Species species) throws TopiaException { - List<E> allById = findAllById(id); - Echotype result = null; - for (E echotype : allById) { - if (echotype.getSpecies().contains(species)) { - result = echotype; - break; - } - } - return result; - } -} Copied: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/EchotypeTopiaDao.java (from rev 924, trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/EchotypeDAOImpl.java) =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/EchotypeTopiaDao.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/EchotypeTopiaDao.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,52 @@ +/* + * #%L + * EchoBase :: Domain + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.echobase.entities.data; + +import fr.ifremer.echobase.entities.references.Species; +import org.nuiton.topia.persistence.TopiaException; + +import java.util.List; + +/** + * User {@link EchotypeTopiaDao} implementation. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.2 + */ +public class EchotypeTopiaDao extends GeneratedEchotypeTopiaDao<Echotype> { + + @Override + public Echotype findByIdAndSpecies(Integer id, + Species species) throws TopiaException { +// List<E> allById = findAllById(id); + List<Echotype> allById = forIdEquals(id).findAll(); + Echotype result = null; + for (Echotype echotype : allById) { + if (echotype.getSpecies().contains(species)) { + result = echotype; + break; + } + } + return result; + } +} Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/ResultDAOImpl.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/ResultDAOImpl.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/ResultDAOImpl.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,55 +0,0 @@ -package fr.ifremer.echobase.entities.data; - -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import fr.ifremer.echobase.entities.references.DataMetadata; - -import java.util.List; -import java.util.Set; - -public class ResultDAOImpl<E extends Result> extends ResultDAOAbstract<E> { - - public List<E> findAllWithCategoryCellAndDataMetadata(Set<String> cellIds, - DataMetadata requiredDataMetadata, - List<String> categoryIds) { - - String query = createSimpleQuery(null) + " WHERE cell.id IN :cell AND dataMetadata = :dataMetadata"; - return findAllByQuery( - query + " AND category.id IN :category", - Result.PROPERTY_CELL, cellIds, - Result.PROPERTY_DATA_METADATA, requiredDataMetadata, - Result.PROPERTY_CATEGORY, categoryIds); - } - - public List<E> findAllWithNoCategoryCellAndDataMetadata(Set<String> cellIds, - DataMetadata requiredDataMetadata) { - - String query = createSimpleQuery(null) + " WHERE cell.id IN :cell AND dataMetadata = :dataMetadata"; - return findAllByQuery( - query + " AND category IS NULL", - Result.PROPERTY_CELL, cellIds, - Result.PROPERTY_DATA_METADATA, requiredDataMetadata); - } - -} //ResultDAOImpl<E extends Result> Copied: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/ResultTopiaDao.java (from rev 924, trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/ResultDAOImpl.java) =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/ResultTopiaDao.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/ResultTopiaDao.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,63 @@ +package fr.ifremer.echobase.entities.data; + +/* + * #%L + * EchoBase :: Domain + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2013 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import fr.ifremer.echobase.entities.references.DataMetadata; + +import java.util.List; +import java.util.Set; + +public class ResultTopiaDao extends AbstractResultTopiaDao<Result> { + + public List<Result> findAllWithCategoryCellAndDataMetadata(Set<String> cellIds, + DataMetadata requiredDataMetadata, + List<String> categoryIds) { + +// String query = createSimpleQuery(null) + " WHERE cell.id IN :cell AND dataMetadata = :dataMetadata"; +// return findAllByQuery( +// query + " AND category.id IN :category", +// Result.PROPERTY_CELL, cellIds, +// Result.PROPERTY_DATA_METADATA, requiredDataMetadata, +// Result.PROPERTY_CATEGORY, categoryIds); + return forEquals(Result.PROPERTY_DATA_METADATA, requiredDataMetadata). + addTopiaIdIn(Result.PROPERTY_CELL, cellIds). + addTopiaIdIn(Result.PROPERTY_CATEGORY, categoryIds). + findAll(); + } + + public List<Result> findAllWithNoCategoryCellAndDataMetadata(Set<String> cellIds, + DataMetadata requiredDataMetadata) { + +// String query = createSimpleQuery(null) + " WHERE cell.id IN :cell AND dataMetadata = :dataMetadata"; +// return findAllByQuery( +// query + " AND category IS NULL", +// Result.PROPERTY_CELL, cellIds, +// Result.PROPERTY_DATA_METADATA, requiredDataMetadata); + return forEquals(Result.PROPERTY_DATA_METADATA, requiredDataMetadata). + addTopiaIdIn(Result.PROPERTY_CELL, cellIds). + addNull(Result.PROPERTY_CATEGORY). + findAll(); + } + +} Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseDbMeta.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseDbMeta.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseDbMeta.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,7 +24,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.DbMeta; import org.nuiton.topia.persistence.metadata.TableMeta; @@ -38,125 +38,125 @@ * @author tchemit <chemit@codelutin.com> * @since 1.1 */ -public class EchoBaseDbMeta extends DbMeta<EchoBaseEntityEnum> { +public class EchoBaseDbMeta extends DbMeta<EchoBaseUserEntityEnum> { public static EchoBaseDbMeta newDbMeta() { return new EchoBaseDbMeta(new EchoBasePersistenceHelper()); } - private static final List<EchoBaseEntityEnum> REFERENCE_TYPES = ImmutableList.copyOf(Arrays.asList( + private static final List<EchoBaseUserEntityEnum> REFERENCE_TYPES = ImmutableList.copyOf(Arrays.asList( // with no dep - EchoBaseEntityEnum.SexCategory, - EchoBaseEntityEnum.AgeCategory, - EchoBaseEntityEnum.SizeCategory, - EchoBaseEntityEnum.Species, - EchoBaseEntityEnum.Calibration, - EchoBaseEntityEnum.VesselType, - EchoBaseEntityEnum.Mission, - EchoBaseEntityEnum.DepthStratum, - EchoBaseEntityEnum.EchotypeCategory, - EchoBaseEntityEnum.AreaOfOperation, - EchoBaseEntityEnum.ReferenceDatumType, - EchoBaseEntityEnum.DataType, - EchoBaseEntityEnum.DataQuality, - EchoBaseEntityEnum.CellMethod, - EchoBaseEntityEnum.CellType, - EchoBaseEntityEnum.OperationEvent, - EchoBaseEntityEnum.SampleDataType, - EchoBaseEntityEnum.SampleType, - EchoBaseEntityEnum.GearCharacteristic, - EchoBaseEntityEnum.CategoryMeaning, - EchoBaseEntityEnum.CategoryType, - EchoBaseEntityEnum.MeasureType, - EchoBaseEntityEnum.MeasurementMetadata, - EchoBaseEntityEnum.ReferencingMethod, + EchoBaseUserEntityEnum.SexCategory, + EchoBaseUserEntityEnum.AgeCategory, + EchoBaseUserEntityEnum.SizeCategory, + EchoBaseUserEntityEnum.Species, + EchoBaseUserEntityEnum.Calibration, + EchoBaseUserEntityEnum.VesselType, + EchoBaseUserEntityEnum.Mission, + EchoBaseUserEntityEnum.DepthStratum, + EchoBaseUserEntityEnum.EchotypeCategory, + EchoBaseUserEntityEnum.AreaOfOperation, + EchoBaseUserEntityEnum.ReferenceDatumType, + EchoBaseUserEntityEnum.DataType, + EchoBaseUserEntityEnum.DataQuality, + EchoBaseUserEntityEnum.CellMethod, + EchoBaseUserEntityEnum.CellType, + EchoBaseUserEntityEnum.OperationEvent, + EchoBaseUserEntityEnum.SampleDataType, + EchoBaseUserEntityEnum.SampleType, + EchoBaseUserEntityEnum.GearCharacteristic, + EchoBaseUserEntityEnum.CategoryMeaning, + EchoBaseUserEntityEnum.CategoryType, + EchoBaseUserEntityEnum.MeasureType, + EchoBaseUserEntityEnum.MeasurementMetadata, + EchoBaseUserEntityEnum.ReferencingMethod, // with deps - EchoBaseEntityEnum.Strata, - EchoBaseEntityEnum.AcousticInstrument, - EchoBaseEntityEnum.Vessel, - EchoBaseEntityEnum.ReferenceDatum, - EchoBaseEntityEnum.OperationMetadata, - EchoBaseEntityEnum.GearMetadata, - EchoBaseEntityEnum.GearCharacteristicValue, - EchoBaseEntityEnum.Gear, + EchoBaseUserEntityEnum.Strata, + EchoBaseUserEntityEnum.AcousticInstrument, + EchoBaseUserEntityEnum.Vessel, + EchoBaseUserEntityEnum.ReferenceDatum, + EchoBaseUserEntityEnum.OperationMetadata, + EchoBaseUserEntityEnum.GearMetadata, + EchoBaseUserEntityEnum.GearCharacteristicValue, + EchoBaseUserEntityEnum.Gear, - EchoBaseEntityEnum.SpeciesCategory, - EchoBaseEntityEnum.TSParameters, - EchoBaseEntityEnum.DataMetadata, - EchoBaseEntityEnum.CategoryRef, - EchoBaseEntityEnum.Impacte, - EchoBaseEntityEnum.DataProtocol)); + EchoBaseUserEntityEnum.SpeciesCategory, + EchoBaseUserEntityEnum.TSParameters, + EchoBaseUserEntityEnum.DataMetadata, + EchoBaseUserEntityEnum.CategoryRef, + EchoBaseUserEntityEnum.Impacte, + EchoBaseUserEntityEnum.DataProtocol)); - private static final List<EchoBaseEntityEnum> DATA_TYPES = ImmutableList.copyOf(Arrays.asList( - EchoBaseEntityEnum.SampleData, - EchoBaseEntityEnum.Sample, + private static final List<EchoBaseUserEntityEnum> DATA_TYPES = ImmutableList.copyOf(Arrays.asList( + EchoBaseUserEntityEnum.SampleData, + EchoBaseUserEntityEnum.Sample, - EchoBaseEntityEnum.OperationMetadataValue, - EchoBaseEntityEnum.GearMetadataValue, - EchoBaseEntityEnum.Operation, + EchoBaseUserEntityEnum.OperationMetadataValue, + EchoBaseUserEntityEnum.GearMetadataValue, + EchoBaseUserEntityEnum.Operation, - EchoBaseEntityEnum.Data, + EchoBaseUserEntityEnum.Data, // Result has a link on cell, need then to import cell before result // see http://forge.codelutin.com/issues/3776 - EchoBaseEntityEnum.Cell, + EchoBaseUserEntityEnum.Cell, - EchoBaseEntityEnum.Echotype, - EchoBaseEntityEnum.Category, - EchoBaseEntityEnum.Result, + EchoBaseUserEntityEnum.Echotype, + EchoBaseUserEntityEnum.Category, + EchoBaseUserEntityEnum.Result, // EchoBaseEntityEnum.Cell, - EchoBaseEntityEnum.DataProcessing, - EchoBaseEntityEnum.DataAcquisition, - EchoBaseEntityEnum.Transect, - EchoBaseEntityEnum.Transit, + EchoBaseUserEntityEnum.DataProcessing, + EchoBaseUserEntityEnum.DataAcquisition, + EchoBaseUserEntityEnum.Transect, + EchoBaseUserEntityEnum.Transit, - EchoBaseEntityEnum.LengthAgeKey, - EchoBaseEntityEnum.LengthWeightKey, + EchoBaseUserEntityEnum.LengthAgeKey, + EchoBaseUserEntityEnum.LengthWeightKey, - EchoBaseEntityEnum.Voyage)); + EchoBaseUserEntityEnum.Voyage)); - private final List<TableMeta<EchoBaseEntityEnum>> referenceTables; + private final List<TableMeta<EchoBaseUserEntityEnum>> referenceTables; - private final List<AssociationMeta<EchoBaseEntityEnum>> referenceAssociations; + private final List<AssociationMeta<EchoBaseUserEntityEnum>> referenceAssociations; - private final List<TableMeta<EchoBaseEntityEnum>> dataTables; + private final List<TableMeta<EchoBaseUserEntityEnum>> dataTables; - private final List<AssociationMeta<EchoBaseEntityEnum>> dataAssociations; + private final List<AssociationMeta<EchoBaseUserEntityEnum>> dataAssociations; EchoBaseDbMeta(EchoBasePersistenceHelper persistenceHelper) { super(persistenceHelper, - EchoBaseEntityEnum.values(), - EchoBaseEntityEnum.EntityModificationLog, - EchoBaseEntityEnum.ImportLog); + EchoBaseUserEntityEnum.values(), + EchoBaseUserEntityEnum.EntityModificationLog, + EchoBaseUserEntityEnum.ImportLog); { // reference tables - List<TableMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + List<TableMeta<EchoBaseUserEntityEnum>> result = Lists.newArrayList(); addTables(result, REFERENCE_TYPES); referenceTables = ImmutableList.copyOf(result); } { // reference associations - List<AssociationMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + List<AssociationMeta<EchoBaseUserEntityEnum>> result = Lists.newArrayList(); addAssociations(result, REFERENCE_TYPES); referenceAssociations = ImmutableList.copyOf(result); } { // data tables - List<TableMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + List<TableMeta<EchoBaseUserEntityEnum>> result = Lists.newArrayList(); addTables(result, DATA_TYPES); dataTables = ImmutableList.copyOf(result); } { // data associations - List<AssociationMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + List<AssociationMeta<EchoBaseUserEntityEnum>> result = Lists.newArrayList(); addAssociations(result, DATA_TYPES); dataAssociations = ImmutableList.copyOf(result); } @@ -166,17 +166,17 @@ return getAllTables().size() + getAllAssociations().size(); } - public List<TableMeta<EchoBaseEntityEnum>> getAllTables() { + public List<TableMeta<EchoBaseUserEntityEnum>> getAllTables() { - List<TableMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + List<TableMeta<EchoBaseUserEntityEnum>> result = Lists.newArrayList(); result.addAll(referenceTables); result.addAll(dataTables); return ImmutableList.copyOf(result); } - public List<AssociationMeta<EchoBaseEntityEnum>> getAllAssociations() { - List<AssociationMeta<EchoBaseEntityEnum>> result = Lists.newArrayList(); + public List<AssociationMeta<EchoBaseUserEntityEnum>> getAllAssociations() { + List<AssociationMeta<EchoBaseUserEntityEnum>> result = Lists.newArrayList(); result.addAll(referenceAssociations); result.addAll(dataAssociations); return ImmutableList.copyOf(result); @@ -186,19 +186,19 @@ return getReferenceTables().size() + getReferenceAssociations().size(); } - public List<TableMeta<EchoBaseEntityEnum>> getReferenceTables() { + public List<TableMeta<EchoBaseUserEntityEnum>> getReferenceTables() { return referenceTables; } - public List<AssociationMeta<EchoBaseEntityEnum>> getReferenceAssociations() { + public List<AssociationMeta<EchoBaseUserEntityEnum>> getReferenceAssociations() { return referenceAssociations; } - public List<TableMeta<EchoBaseEntityEnum>> getDataTables() { + public List<TableMeta<EchoBaseUserEntityEnum>> getDataTables() { return dataTables; } - public List<AssociationMeta<EchoBaseEntityEnum>> getDataAssociations() { + public List<AssociationMeta<EchoBaseUserEntityEnum>> getDataAssociations() { return dataAssociations; } @@ -206,7 +206,7 @@ * @return the entity types of data in correct order for replication * purpose. */ - public List<EchoBaseEntityEnum> getDataTypes() { + public List<EchoBaseUserEntityEnum> getDataTypes() { return DATA_TYPES; } @@ -214,7 +214,7 @@ * @return the entity types of reference in correct order for copy * purpose (says import / export of all a database. */ - public List<EchoBaseEntityEnum> getReferenceTypes() { + public List<EchoBaseUserEntityEnum> getReferenceTypes() { return REFERENCE_TYPES; } Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBaseEntityHelper.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,17 +25,18 @@ import com.google.common.base.Preconditions; import fr.ifremer.echobase.entities.DriverType; +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaApplicationContext; import fr.ifremer.echobase.entities.EchoBaseUserImpl; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; import fr.ifremer.echobase.entities.data.VoyageImpl; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.Transaction; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaContextFactory; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaTransaction; -import org.nuiton.topia.framework.TopiaContextImplementor; +import org.hibernate.cfg.Environment; +import org.nuiton.topia.persistence.internal.AbstractTopiaPersistenceContext; +import org.nuiton.topia.persistence.TopiaApplicationContext; +import org.nuiton.topia.persistence.TopiaException; import java.sql.Connection; import java.sql.DriverManager; @@ -52,34 +53,32 @@ /** Logger. */ private static final Log log = LogFactory.getLog(EchoBaseEntityHelper.class); - public static TopiaContext newTransactionFromRootContext(TopiaContext otherTx) throws TopiaException { - TopiaContextImplementor rootContext = ((TopiaContextImplementor) otherTx).getRootContext(); - TopiaContext tx = rootContext.beginTransaction(); - return tx; - } +// public static TopiaContext newTransactionFromRootContext(TopiaContext otherTx) throws TopiaException { +// TopiaContextImplementor rootContext = ((TopiaContextImplementor) otherTx).getRootContext(); +// TopiaContext tx = rootContext.beginTransaction(); +// return tx; +// } - public static void releaseRootContext(TopiaContext context) { + public static void releaseApplicationContext(TopiaApplicationContext context) { - TopiaContext rootContext = ((TopiaContextImplementor) context).getRootContext(); - if (log.isInfoEnabled()) { log.info("release database " + - rootContext.getConfig().get(TopiaContextFactory.CONFIG_URL)); + context.getConfiguration().get(Environment.URL)); } try { - releaseContext(rootContext); + releaseContext(context); } catch (TopiaException e) { // we don't want this to throw an exception, wants to close // all possible opened contexts if (log.isErrorEnabled()) { - log.error("Could not close context " + rootContext, e); + log.error("Could not close context " + context, e); } } } - public static void releaseContext(TopiaContext rootContext) throws TopiaException { - if (rootContext != null && !((TopiaTransaction) rootContext).isClosed()) { - ((TopiaTransaction) rootContext).closeContext(); + public static void releaseContext(TopiaApplicationContext rootContext) throws TopiaException { + if (rootContext != null && !rootContext.isClosed()) { + rootContext.closeContext(); } } @@ -149,12 +148,12 @@ return metaConfiguration; } - public static void closeConnection(TopiaContext transaction) { + public static void closeConnection(AbstractTopiaPersistenceContext transaction) { if (transaction == null) { if (log.isTraceEnabled()) { log.trace("no transaction to close"); } - } else if (((TopiaTransaction) transaction).isClosed()) { + } else if (transaction.isClosed()) { if (log.isTraceEnabled()) { log.trace("transaction " + transaction + " is already closed"); } @@ -164,14 +163,14 @@ } - Transaction tx = transaction.getHibernateSession().getTransaction(); + Transaction tx = transaction.getHibernateSupport().getHibernateSession().getTransaction(); if (!tx.wasCommitted() && !tx.wasRolledBack()) { if (log.isDebugEnabled()) { log.debug("rollback transaction!"); } tx.rollback(); } - ((TopiaTransaction) transaction).closeContext(); + transaction.closeContext(); } } @@ -183,7 +182,7 @@ * otherwise * @throws TopiaException if something was wrong while requesting database */ - public static boolean isInternalSchemaCreated(TopiaContext tx) throws TopiaException { + public static boolean isInternalSchemaCreated(EchoBaseInternalTopiaApplicationContext tx) throws TopiaException { boolean schemaFound = tx.isTableExists(EchoBaseUserImpl.class); @@ -198,7 +197,7 @@ * otherwise * @throws TopiaException if something was wrong while requesting database */ - public static boolean isWorkingDbSchemaCreated(TopiaContext tx) throws TopiaException { + public static boolean isWorkingDbSchemaCreated(EchoBaseUserTopiaApplicationContext tx) throws TopiaException { boolean schemaFound = tx.isTableExists(VoyageImpl.class); Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBasePersistenceHelper.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBasePersistenceHelper.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchoBasePersistenceHelper.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,10 +23,7 @@ * #L% */ -import fr.ifremer.echobase.entities.EchoBaseDAOHelper; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.persistence.TopiaDAO; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaPersistenceHelper; @@ -37,21 +34,21 @@ * @see TopiaPersistenceHelper * @since 1.1 */ -public class EchoBasePersistenceHelper implements TopiaPersistenceHelper<EchoBaseEntityEnum> { +public class EchoBasePersistenceHelper implements TopiaPersistenceHelper<EchoBaseUserEntityEnum> { @Override - public <E extends TopiaEntity> EchoBaseEntityEnum getEntityEnum(Class<E> type) { - return EchoBaseEntityEnum.valueOf(type); + public <E extends TopiaEntity> EchoBaseUserEntityEnum getEntityEnum(Class<E> type) { + return EchoBaseUserEntityEnum.valueOf(type); } - @Override - public <E extends TopiaEntity> TopiaDAO<E> getDAO(TopiaContext tx, Class<E> type) { - return EchoBaseDAOHelper.<E, TopiaDAO<E>>getDAO(tx, type); - } +// @Override +// public <E extends TopiaEntity> TopiaDAO<E> getDAO(TopiaContext tx, Class<E> type) { +// return EchoBaseDAOHelper.<E, TopiaDAO<E>>getDAO(tx, type); +// } +// +// @Override +// public <E extends TopiaEntity> TopiaDAO<E> getDAO(TopiaContext tx, EchoBaseEntityEnum type) { +// return (TopiaDAO<E>) getDAO(tx, type.getContract()); +// } - @Override - public <E extends TopiaEntity> TopiaDAO<E> getDAO(TopiaContext tx, EchoBaseEntityEnum type) { - return (TopiaDAO<E>) getDAO(tx, type.getContract()); - } - } Copied: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaApplicationContexts.java (from rev 924, trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java) =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaApplicationContexts.java (rev 0) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaApplicationContexts.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,228 @@ +package fr.ifremer.echobase.persistence; + +/* + * #%L + * EchoBase :: Domain + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.google.common.base.Charsets; +import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.config.EchoBaseConfigurationOption; +import fr.ifremer.echobase.entities.DriverType; +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaApplicationContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.hibernate.cfg.Environment; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.util.RecursiveProperties; + +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; +import java.util.Properties; + +/** + * To deal with topia context for echobase application. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.1 + */ +public class EchobaseTopiaApplicationContexts { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(EchobaseTopiaApplicationContexts.class); + + public static final String USER_DB_PROPERTIES = + "/echobase-workingdb.properties"; + + public static final String INTERNAL_DB_PROPERTIES = + "/echobase-internaldb.properties"; + + protected EchobaseTopiaApplicationContexts() { + // should not be instanciated + } + + /** + * Open a new topia root context from the given jdbc configuration. + * + * @param jdbcConfiguration jdbc configuration + * @return the new fresh root context + */ + public static EchoBaseUserTopiaApplicationContext newWorkingDb(JdbcConfiguration jdbcConfiguration) { + + EchoBaseUserTopiaApplicationContext result = newUserDb(jdbcConfiguration, true); + return result; + } + + /** + * Open a new topia root context from the given jdbc configuration and + * create schema if asked and schema does not exist. + * <p/> + * + * @param jdbcConfiguration jdbc configuration + * @return the new fresh root context + * @since 2.4 + */ + public static EchoBaseUserTopiaApplicationContext newUserDb(JdbcConfiguration jdbcConfiguration, boolean createSchema) { + + Properties properties = loadWorkingDbConfiguration(jdbcConfiguration); + if (log.isInfoEnabled()) { + log.info("Starts a db at : " + + properties.get(Environment.URL)); + } + EchoBaseUserTopiaApplicationContext result = new EchoBaseUserTopiaApplicationContext(properties); + + if (createSchema) { + try { + if (!EchoBaseEntityHelper.isWorkingDbSchemaCreated(result)) { + + if (log.isInfoEnabled()) { + log.info("Will create schema for " + + jdbcConfiguration.getUrl()); + } + result.createSchema(); + } + } catch (TopiaException e) { + throw new EchoBaseTechnicalException("Could not create db schema", e); + } + } + return result; + } + + /** + * Open a new topia root context for the internal db of t3 (this should be + * a h2 db used only for security). + * + * @param internalDbDirectory directory of the internal db + * @return the new fresh root context of the internal db + */ + public static EchoBaseInternalTopiaApplicationContext newInternalDb(File internalDbDirectory) { + + Properties properties = loadInternalDbconfiguration(internalDbDirectory); + + if (log.isInfoEnabled()) { + log.info("Starts a db at : " + + properties.get(Environment.URL)); + } + EchoBaseInternalTopiaApplicationContext result = new EchoBaseInternalTopiaApplicationContext(properties); + try { + if (!EchoBaseEntityHelper.isInternalSchemaCreated(result)) { + + if (log.isInfoEnabled()) { + log.info("Will create schema for " + + properties.get(Environment.URL)); + } + result.createSchema(); + } + } catch (TopiaException e) { + throw new EchoBaseTechnicalException("Could not create db schema", e); + } + return result; + } + + public static Properties loadWorkingDbConfiguration(JdbcConfiguration conf) { + Properties result = new RecursiveProperties(); + + DriverType driverType = conf.getDriverType(); + + result.setProperty("configuration.url", conf.getUrl()); + result.setProperty("configuration.login", conf.getLogin()); + result.setProperty("configuration.password", conf.getPassword()); + result.setProperty("configuration.driver", + driverType.getDriverClass().getName()); + result.setProperty("configuration.dialect", + driverType.getDialectClass().getName()); + + loadProperties(result, USER_DB_PROPERTIES); + + reloadProperty(result, Environment.URL, "configuration.url"); + reloadProperty(result, Environment.USER, "configuration.login"); + reloadProperty(result, Environment.PASS, "configuration.password"); + reloadProperty(result, Environment.DIALECT, "configuration.dialect"); + reloadProperty(result, Environment.DRIVER, "configuration.driver"); + + return result; + } + + protected static Properties loadInternalDbconfiguration(File internalDbDirectory) { + Properties result = new RecursiveProperties(); + + String key = EchoBaseConfigurationOption.INTERNAL_DB_DIRECTORY.getKey(); + + result.setProperty(key, internalDbDirectory.getAbsolutePath()); + + loadProperties(result, INTERNAL_DB_PROPERTIES); + reloadProperty(result, Environment.URL, key); + return result; + } + + protected static void loadProperties(Properties result, + String path) { + URL dbConfigFile = + EchobaseTopiaApplicationContexts.class.getResource(path); + + try { + InputStreamReader reader = + new InputStreamReader(dbConfigFile.openStream(), + Charsets.UTF_8); + try { + result.load(reader); +// // add entities mapping +// result.put(TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES, +// entities +// ); + } finally { + reader.close(); + } + } catch (IOException e) { + throw new IllegalStateException( + "Could not load database configuration from " + path, e); + } + } + +// /** +// * Open a new topia root context from given configuration. +// * +// * @param configuration topia configuration +// * @return the new fresh root context +// */ +// private static TopiaContext newDb(Properties configuration) { +// +// if (log.isInfoEnabled()) { +// log.info("Starts a db at : " + +// configuration.get(Environment.URL)); +// } +// TopiaContext result = TopiaContextFactory.getContext(configuration); +// +// return result; +// } + + private static void reloadProperty(Properties properties, + String propertyName, + String propertyNameToRemove) { + Object o = properties.getProperty(propertyName); + properties.put(propertyName, o); + properties.remove(propertyNameToRemove); + } +} Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/EchobaseTopiaContexts.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,224 +0,0 @@ -package fr.ifremer.echobase.persistence; - -/* - * #%L - * EchoBase :: Domain - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2012 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import com.google.common.base.Charsets; -import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.config.EchoBaseConfigurationOption; -import fr.ifremer.echobase.entities.DriverType; -import fr.ifremer.echobase.entities.EchoBaseDAOHelper; -import fr.ifremer.echobase.entities.EchoBaseInternalDAOHelper; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaContextFactory; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaPersistenceContext; -import org.nuiton.util.RecursiveProperties; - -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; -import java.util.Properties; - -/** - * To deal with topia context for echobase application. - * - * @author tchemit <chemit@codelutin.com> - * @since 1.1 - */ -public class EchobaseTopiaContexts { - - /** Logger. */ - private static final Log log = - LogFactory.getLog(EchobaseTopiaContexts.class); - - public static final String USER_DB_PROPERTIES = - "/echobase-workingdb.properties"; - - public static final String INTERNAL_DB_PROPERTIES = - "/echobase-internaldb.properties"; - - protected EchobaseTopiaContexts() { - // should not be instanciated - } - - /** - * Open a new topia root context from the given jdbc configuration. - * - * @param jdbcConfiguration jdbc configuration - * @return the new fresh root context - */ - public static TopiaContext newWorkingDb(JdbcConfiguration jdbcConfiguration) { - - TopiaContext result = newWorkingDb(jdbcConfiguration, true); - return result; - } - - /** - * Open a new topia root context from the given jdbc configuration and - * create schema if asked and schema does not exist. - * <p/> - * - * @param jdbcConfiguration jdbc configuration - * @return the new fresh root context - * @since 2.4 - */ - public static TopiaContext newWorkingDb(JdbcConfiguration jdbcConfiguration, boolean createSchema) { - - Properties properties = loadWorkingDbConfiguration(jdbcConfiguration); - TopiaContext result = newDb(properties); - - if (createSchema) { - try { - if (!EchoBaseEntityHelper.isWorkingDbSchemaCreated(result)) { - - if (log.isInfoEnabled()) { - log.info("Will create schema for " + - jdbcConfiguration.getUrl()); - } - ((TopiaPersistenceContext) result).createSchema(); - } - } catch (TopiaException e) { - throw new EchoBaseTechnicalException("Could not create db schema", e); - } - } - return result; - } - - /** - * Open a new topia root context for the internal db of t3 (this should be - * a h2 db used only for security). - * - * @param internalDbDirectory directory of the internal db - * @return the new fresh root context of the internal db - */ - public static TopiaContext newInternalDb(File internalDbDirectory) { - - Properties properties = loadInternalDbconfiguration(internalDbDirectory); - TopiaContext result = newDb(properties); - try { - if (!EchoBaseEntityHelper.isInternalSchemaCreated(result)) { - - if (log.isInfoEnabled()) { - log.info("Will create schema for " + - properties.get(TopiaContextFactory.CONFIG_URL)); - } - ((TopiaPersistenceContext) result).createSchema(); - } - } catch (TopiaException e) { - throw new EchoBaseTechnicalException("Could not create db schema", e); - } - return result; - } - - public static Properties loadWorkingDbConfiguration(JdbcConfiguration conf) { - Properties result = new RecursiveProperties(); - - DriverType driverType = conf.getDriverType(); - - result.setProperty("configuration.url", conf.getUrl()); - result.setProperty("configuration.login", conf.getLogin()); - result.setProperty("configuration.password", conf.getPassword()); - result.setProperty("configuration.driver", - driverType.getDriverClass().getName()); - result.setProperty("configuration.dialect", - driverType.getDialectClass().getName()); - - loadProperties(result, USER_DB_PROPERTIES, - EchoBaseDAOHelper.getImplementationClassesAsString()); - - reloadProperty(result, TopiaContextFactory.CONFIG_URL, "configuration.url"); - reloadProperty(result, TopiaContextFactory.CONFIG_USER, "configuration.login"); - reloadProperty(result, TopiaContextFactory.CONFIG_PASS, "configuration.password"); - reloadProperty(result, TopiaContextFactory.CONFIG_DIALECT, "configuration.dialect"); - reloadProperty(result, TopiaContextFactory.CONFIG_DRIVER, "configuration.driver"); - - return result; - } - - protected static Properties loadInternalDbconfiguration(File internalDbDirectory) { - Properties result = new RecursiveProperties(); - - String key = EchoBaseConfigurationOption.INTERNAL_DB_DIRECTORY.getKey(); - - result.setProperty(key, internalDbDirectory.getAbsolutePath()); - - loadProperties(result, INTERNAL_DB_PROPERTIES, - EchoBaseInternalDAOHelper.getImplementationClassesAsString()); - reloadProperty(result, TopiaContextFactory.CONFIG_URL, key); - return result; - } - - protected static void loadProperties(Properties result, - String path, - String entities) { - URL dbConfigFile = - EchobaseTopiaContexts.class.getResource(path); - - try { - InputStreamReader reader = - new InputStreamReader(dbConfigFile.openStream(), - Charsets.UTF_8); - try { - result.load(reader); - // add entities mapping - result.put(TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES, - entities - ); - } finally { - reader.close(); - } - } catch (IOException e) { - throw new IllegalStateException( - "Could not load database configuration from " + path, e); - } - } - - /** - * Open a new topia root context from given configuration. - * - * @param configuration topia configuration - * @return the new fresh root context - */ - private static TopiaContext newDb(Properties configuration) { - - if (log.isInfoEnabled()) { - log.info("Starts a db at : " + - configuration.get(TopiaContextFactory.CONFIG_URL)); - } - TopiaContext result = TopiaContextFactory.getContext(configuration); - - return result; - } - - private static void reloadProperty(Properties properties, - String propertyName, - String propertyNameToRemove) { - Object o = properties.getProperty(propertyName); - properties.put(propertyName, o); - properties.remove(propertyNameToRemove); - } -} Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/JdbcConfiguration.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/JdbcConfiguration.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/JdbcConfiguration.java 2013-12-22 00:29:17 UTC (rev 925) @@ -22,23 +22,23 @@ */ package fr.ifremer.echobase.persistence; +import com.google.common.collect.ImmutableMap; import fr.ifremer.echobase.entities.DriverType; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaContextFactory; +import org.hibernate.cfg.Environment; +import org.nuiton.topia.persistence.TopiaApplicationContext; import java.io.File; import java.io.Serializable; -import java.util.Properties; public class JdbcConfiguration implements Serializable { - public static JdbcConfiguration newConfig(TopiaContext context) { - Properties config = context.getConfig(); + public static JdbcConfiguration newConfig(TopiaApplicationContext context) { + ImmutableMap config = context.getConfiguration(); JdbcConfiguration result = new JdbcConfiguration(); - result.setDriverType(DriverType.valueOfDriverName(config.getProperty(TopiaContextFactory.CONFIG_DRIVER))); - result.setUrl(config.getProperty(TopiaContextFactory.CONFIG_URL)); - result.setLogin(config.getProperty(TopiaContextFactory.CONFIG_USER)); - result.setPassword(config.getProperty(TopiaContextFactory.CONFIG_PASS)); + result.setDriverType(DriverType.valueOfDriverName((String) config.get(Environment.DRIVER))); + result.setUrl((String) config.get(Environment.URL)); + result.setLogin((String) config.get(Environment.USER)); + result.setPassword((String) config.get(Environment.PASS)); return result; } Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/EchoBaseMigrationCallBackResolver.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/EchoBaseMigrationCallBackResolver.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/EchoBaseMigrationCallBackResolver.java 2013-12-22 00:29:17 UTC (rev 925) @@ -47,7 +47,7 @@ private static final Log log = LogFactory.getLog(EchoBaseMigrationCallBackResolver.class); - public static <C extends TopiaMigrationCallbackByClassNG.MigrationCallBackForVersion> EchoBaseMigrationCallBackResolver<C> newResolver(Class<C> resolverType) { + public static <C extends TopiaMigrationCallbackByClassNG.MigrationCallBackForVersion<?>> EchoBaseMigrationCallBackResolver<C> newResolver(Class<C> resolverType) { return new EchoBaseMigrationCallBackResolver<C>(resolverType); } Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,6 +23,7 @@ * #L% */ +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaPersistenceContext; import org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG; /** @@ -31,11 +32,6 @@ * @author tchemit <chemit@codelutin.com> * @since 1.1 */ -public abstract class MigrationCallBackForVersion extends TopiaMigrationCallbackByClassNG.MigrationCallBackForVersion { +public abstract class MigrationCallBackForVersion extends TopiaMigrationCallbackByClassNG.MigrationCallBackForVersion<EchoBaseInternalTopiaPersistenceContext> { -// protected Dialect getDialect(TopiaContext tx) throws TopiaNotFoundException { -// Dialect dialect = -// Dialect.getDialect(tx.getHibernateConfiguration().getProperties()); -// return dialect; -// } } Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion2_2.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion2_2.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallBackForVersion2_2.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,12 +23,13 @@ * #L% */ +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaPersistenceContext; import fr.ifremer.echobase.entities.ExportQueries; import fr.ifremer.echobase.entities.ExportQuery; import fr.ifremer.echobase.entities.ExportQueryImpl; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaSQLQuery; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.support.TopiaSqlQuery; +import org.nuiton.topia.persistence.support.TopiaSqlSupport; import org.nuiton.util.Version; import java.sql.Connection; @@ -53,13 +54,15 @@ "UPDATE exportquery SET name = '%s', topiaversion = topiaversion + 1 WHERE topiaid = '%s'"; @Override - protected void prepareMigrationScript(TopiaContext tx, + protected void prepareMigrationScript(EchoBaseInternalTopiaPersistenceContext tx, List<String> queries, boolean showSql, boolean showProgression) throws TopiaException { + TopiaSqlSupport sqlSupport = tx.getSqlSupport(); + // normalize queries names (http://forge.codelutin.com/issues/2875) - normalizeExportQueryNames(tx, queries); + normalizeExportQueryNames(sqlSupport, queries); // remove login from workingdbconfiguration (http://forge.codelutin.com/issues/2245) removeLoginField(queries); @@ -69,17 +72,17 @@ queries.add("ALTER TABLE WorkingDbConfiguration DROP COLUMN login"); } - protected void normalizeExportQueryNames(TopiaContext tx, List<String> queries) { + protected void normalizeExportQueryNames(TopiaSqlSupport tx, List<String> queries) { - TopiaSQLQuery<ExportQuery> query = new TopiaSQLQuery<ExportQuery>() { + TopiaSqlQuery<ExportQuery> query = new TopiaSqlQuery<ExportQuery>() { @Override - protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + public PreparedStatement prepareQuery(Connection connection) throws SQLException { PreparedStatement result = connection.prepareStatement("select topiaid, name from exportquery;"); return result; } @Override - protected ExportQuery prepareResult(ResultSet set) throws SQLException { + public ExportQuery prepareResult(ResultSet set) throws SQLException { ExportQuery result = new ExportQueryImpl(); result.setTopiaId(set.getString(1)); result.setName(set.getString(2)); @@ -87,7 +90,7 @@ } }; - List<ExportQuery> exportQueries = query.findMultipleResult(tx); + List<ExportQuery> exportQueries = tx.findMultipleResult(query); for (ExportQuery exportQuery : exportQueries) { String queryName = exportQuery.getName(); Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallback.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallback.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/internalDb/MigrationCallback.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,11 +23,11 @@ * #L% */ -import fr.ifremer.echobase.entities.EchoBaseInternalDAOHelper; +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaPersistenceContext; import fr.ifremer.echobase.persistence.migration.EchoBaseMigrationCallBackResolver; +import org.nuiton.topia.persistence.support.TopiaSqlSupport; import org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG; import org.nuiton.util.Version; -import org.nuiton.util.VersionUtil; import java.util.List; @@ -37,7 +37,7 @@ * @author tchemit <chemit@codelutin.com> * @since 1.1 */ -public class MigrationCallback extends TopiaMigrationCallbackByClassNG { +public class MigrationCallback extends TopiaMigrationCallbackByClassNG<EchoBaseInternalTopiaPersistenceContext> { public MigrationCallback() { super(EchoBaseMigrationCallBackResolver.newResolver( @@ -45,12 +45,12 @@ } @Override - public Version getApplicationVersion() { - return VersionUtil.valueOf(EchoBaseInternalDAOHelper.getModelVersion()); + public boolean askUser(Version version, List<Version> versions) { + return true; } @Override - public boolean askUser(Version version, List<Version> versions) { - return true; + protected TopiaSqlSupport getSqlSupport(EchoBaseInternalTopiaPersistenceContext persistenceContext) { + return persistenceContext.getSqlSupport(); } } Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,6 +23,7 @@ * #L% */ +import fr.ifremer.echobase.entities.EchoBaseUserTopiaPersistenceContext; import org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG; /** @@ -31,11 +32,6 @@ * @author tchemit <chemit@codelutin.com> * @since 1.1 */ -public abstract class MigrationCallBackForVersion extends TopiaMigrationCallbackByClassNG.MigrationCallBackForVersion { +public abstract class MigrationCallBackForVersion extends TopiaMigrationCallbackByClassNG.MigrationCallBackForVersion<EchoBaseUserTopiaPersistenceContext> { -// protected Dialect getDialect(TopiaContext tx) throws TopiaNotFoundException { -// Dialect dialect = -// Dialect.getDialect(tx.getHibernateConfiguration().getProperties()); -// return dialect; -// } } Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_2.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_2.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_2.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,12 +23,10 @@ * #L% */ -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaPersistenceContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaSqlSupport; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.Version; import java.util.List; @@ -51,7 +49,7 @@ } @Override - protected void prepareMigrationScript(TopiaContext tx, + protected void prepareMigrationScript(EchoBaseUserTopiaPersistenceContext tx, List<String> queries, boolean showSql, boolean showProgression) throws TopiaException { @@ -74,17 +72,14 @@ queries.add("ALTER TABLE Result ALTER COLUMN category DROP NOT NULL;"); } - protected void updatePostgis(TopiaContext tx) { - TopiaEchoBasePersistenceContext persistenceContext = - new TopiaEchoBasePersistenceContext(tx); - boolean spatialAware = - persistenceContext.isSpatialAware(); + protected void updatePostgis(EchoBaseUserTopiaPersistenceContext tx) { + boolean spatialAware = tx.isSpatialAware(); try { if (spatialAware) { try { // compute all spatial data - ((TopiaSqlSupport) tx).executeSQL("SELECT echobase_compute_all_spatial_data();"); + tx.getSqlSupport().executeSql("SELECT echobase_compute_all_spatial_data();"); } catch (Exception e) { if (log.isErrorEnabled()) { log.error("Could not update spatial datas", e); @@ -92,7 +87,7 @@ } } } finally { - persistenceContext.rollbackTransaction(); + tx.rollback(); } } } \ No newline at end of file Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_5_1.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_5_1.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallBackForVersion2_5_1.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,11 +23,9 @@ * #L% */ -import fr.ifremer.echobase.entities.EchoBasePersistenceContext; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaPersistenceContext; import fr.ifremer.echobase.io.EchoBaseIOUtil; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.Version; import java.util.List; @@ -50,22 +48,13 @@ } @Override - protected void prepareMigrationScript(TopiaContext tx, + protected void prepareMigrationScript(EchoBaseUserTopiaPersistenceContext tx, List<String> queries, boolean showSql, boolean showProgression) throws TopiaException { - boolean spatialAware; + boolean spatialAware = tx.isSpatialAware(); - TopiaEchoBasePersistenceContext persistenceContext = - new TopiaEchoBasePersistenceContext(tx); - try { - - spatialAware = persistenceContext.isSpatialAware(); - } finally { - persistenceContext.rollbackTransaction(); - } - if (spatialAware) { // repass postgis scripts (http://forge.codelutin.com/issues/4018) Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallback.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallback.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallback.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,21 +23,12 @@ * #L% */ -import fr.ifremer.echobase.entities.EchoBaseDAOHelper; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaPersistenceContext; import fr.ifremer.echobase.persistence.migration.EchoBaseMigrationCallBackResolver; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.hibernate.jdbc.Work; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.support.TopiaSqlSupport; import org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG; -import org.nuiton.util.StringUtil; import org.nuiton.util.Version; -import org.nuiton.util.VersionUtil; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; import java.util.List; /** @@ -46,81 +37,20 @@ * @author tchemit <chemit@codelutin.com> * @since 1.3 */ -public class MigrationCallback extends TopiaMigrationCallbackByClassNG { +public class MigrationCallback extends TopiaMigrationCallbackByClassNG<EchoBaseUserTopiaPersistenceContext> { - /** Logger. */ - private static final Log log = LogFactory.getLog(MigrationCallback.class); - public MigrationCallback() { super(EchoBaseMigrationCallBackResolver.newResolver( fr.ifremer.echobase.persistence.migration.workingDb.MigrationCallBackForVersion.class)); } @Override - public Version getApplicationVersion() { - return VersionUtil.valueOf(EchoBaseDAOHelper.getModelVersion()); - } - - @Override public boolean askUser(Version version, List<Version> versions) { return true; } @Override - public void executeSQL(TopiaContext tx, final boolean showSql, final boolean showProgression, final String... sqls) throws TopiaException { - if (log.isInfoEnabled()) { - - log.info(String.format("Will execute %1$s requests...", sqls.length)); - } - if (showSql) { - StringBuilder buffer = new StringBuilder(); - for (String s : sqls) { - buffer.append(s).append("\n"); - } - log.info("SQL TO EXECUTE :\n" + - "--------------------------------------------------------------------------------\n" + - "--------------------------------------------------------------------------------\n" + - buffer.toString() + - "--------------------------------------------------------------------------------\n" + - "--------------------------------------------------------------------------------\n" - ); - } - tx.getHibernateSession().doWork(new Work() { - - @Override - public void execute(Connection connection) throws SQLException { - int index = 0; - int max = sqls.length; - for (String sql : sqls) { - index++; - long t0 = System.nanoTime(); - if (log.isInfoEnabled()) { - String message = ""; - - if (showProgression) { - message = String.format("Executing request [%1$-4s/%2$-4s]", index, max); - } - if (showSql) { - message += "\n" + sql; - } - if (showProgression || showSql) { - - log.info(message); - } - } - PreparedStatement sta = connection.prepareStatement(sql); - try { - sta.execute(); - } finally { - sta.close(); - } - if (log.isDebugEnabled()) { - String message; - message = String.format("Request [%1$-4s/%2$-4s] executed in %3$s.", index, max, StringUtil.convertTime(System.nanoTime() - t0)); - log.debug(message); - } - } - } - }); + protected TopiaSqlSupport getSqlSupport(EchoBaseUserTopiaPersistenceContext persistenceContext) { + return persistenceContext.getSqlSupport(); } } Modified: trunk/echobase-domain/src/main/resources/echobase-internaldb.properties =================================================================== --- trunk/echobase-domain/src/main/resources/echobase-internaldb.properties 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/resources/echobase-internaldb.properties 2013-12-22 00:29:17 UTC (rev 925) @@ -23,7 +23,7 @@ # Database basic configuration hibernate.dialect=org.hibernate.dialect.H2Dialect -hibernate.connection.provider_class=org.nuiton.topia.framework.TopiaConnectionProvider +hibernate.connection.provider_class=org.nuiton.topia.persistence.internal.TopiaConnectionProvider hibernate.connection.username=sa hibernate.connection.password=sa hibernate.connection.driver_class=org.h2.Driver @@ -37,7 +37,7 @@ hibernate.format_sql=false hibernate.use_sql_comments=false -topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.LegacyTopiaIdFactory +topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory # Database migration configuration topia.service.migration=org.nuiton.topia.migration.TopiaMigrationEngine Modified: trunk/echobase-domain/src/main/resources/echobase-workingdb.properties =================================================================== --- trunk/echobase-domain/src/main/resources/echobase-workingdb.properties 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/resources/echobase-workingdb.properties 2013-12-22 00:29:17 UTC (rev 925) @@ -27,7 +27,7 @@ hibernate.connection.url=${configuration.url} hibernate.connection.driver_class=${configuration.driver} hibernate.dialect=${configuration.dialect} -hibernate.connection.provider_class=org.nuiton.topia.framework.TopiaConnectionProvider +hibernate.connection.provider_class=org.nuiton.topia.persistence.internal.TopiaConnectionProvider # Never create/update schema (will do it by logic) hibernate.hbm2ddl.auto=none @@ -37,7 +37,7 @@ hibernate.format_sql=false hibernate.use_sql_comments=false -topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.LegacyTopiaIdFactory +topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory # Database migration configuration topia.service.migration=org.nuiton.topia.migration.TopiaMigrationEngine Modified: trunk/echobase-domain/src/main/xmi/echobase-internal.properties =================================================================== --- trunk/echobase-domain/src/main/xmi/echobase-internal.properties 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/xmi/echobase-internal.properties 2013-12-22 00:29:17 UTC (rev 925) @@ -23,7 +23,6 @@ model.tagValue.notGenerateToString=true model.tagValue.generateOperatorForDAOHelper=true -model.tagValue.generateStandaloneEnumForDAOHelper=true model.tagValue.constantPrefix=PROPERTY_ model.tagValue.version=2.2 model.tagValue.noPCS=true Modified: trunk/echobase-domain/src/main/xmi/echobase.properties =================================================================== --- trunk/echobase-domain/src/main/xmi/echobase.properties 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/main/xmi/echobase.properties 2013-12-22 00:29:17 UTC (rev 925) @@ -23,12 +23,12 @@ model.tagValue.notGenerateToString=true model.tagValue.generateOperatorForDAOHelper=true -model.tagValue.generateStandaloneEnumForDAOHelper=true model.tagValue.constantPrefix=PROPERTY_ model.tagValue.version=2.5.1 model.tagValue.noPCS=true model.tagValue.doNotGenerateBooleanGetMethods=true model.tagValue.indexForeignKeys=true +model.tagValue.daoSuperClass=fr.ifremer.echobase.entities.AbstractEchoBaseDao ############################################################################### ### Ordered attributes ######################################################## Modified: trunk/echobase-domain/src/main/xmi/echobase.zargo =================================================================== (Binary files differ) Modified: trunk/echobase-domain/src/test/java/fr/ifremer/echobase/persistence/EchoBaseDbMetaTest.java =================================================================== --- trunk/echobase-domain/src/test/java/fr/ifremer/echobase/persistence/EchoBaseDbMetaTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-domain/src/test/java/fr/ifremer/echobase/persistence/EchoBaseDbMetaTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,7 +23,7 @@ package fr.ifremer.echobase.persistence; import com.google.common.collect.Lists; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Mission; import org.junit.Assert; @@ -54,15 +54,15 @@ @Test public void getReferenceTypes() { - List<EchoBaseEntityEnum> types = + List<EchoBaseUserEntityEnum> types = dbMetas.getReferenceTypes(); - List<EchoBaseEntityEnum> expectedTypes = + List<EchoBaseUserEntityEnum> expectedTypes = Lists.newArrayList(getContractsOf(Mission.class.getPackage())); Assert.assertNotNull(types); - for (EchoBaseEntityEnum type : expectedTypes) { + for (EchoBaseUserEntityEnum type : expectedTypes) { Assert.assertTrue("Missing type : " + type, types.contains(type)); } Assert.assertEquals(expectedTypes.size(), types.size()); @@ -71,15 +71,15 @@ @Test public void getDataTypes() { - List<EchoBaseEntityEnum> types = + List<EchoBaseUserEntityEnum> types = dbMetas.getDataTypes(); - List<EchoBaseEntityEnum> expectedTypes = + List<EchoBaseUserEntityEnum> expectedTypes = Lists.newArrayList(getContractsOf(Voyage.class.getPackage())); Assert.assertNotNull(types); - for (EchoBaseEntityEnum type : expectedTypes) { + for (EchoBaseUserEntityEnum type : expectedTypes) { Assert.assertTrue("Missing type : " + type, types.contains(type)); } Assert.assertEquals(expectedTypes.size(), types.size()); @@ -91,10 +91,10 @@ * @param entitiesPackage package contening desired entities * @return contracts contained in entitiesPackage */ - public static EchoBaseEntityEnum[] getContractsOf(Package entitiesPackage) { - EchoBaseEntityEnum[] echoBaseEntityEnums = EchoBaseEntityEnum.values(); - List<EchoBaseEntityEnum> refClasses = new ArrayList<EchoBaseEntityEnum>(); - for (EchoBaseEntityEnum echoBaseEntityEnum : echoBaseEntityEnums) { + public static EchoBaseUserEntityEnum[] getContractsOf(Package entitiesPackage) { + EchoBaseUserEntityEnum[] echoBaseEntityEnums = EchoBaseUserEntityEnum.values(); + List<EchoBaseUserEntityEnum> refClasses = new ArrayList<EchoBaseUserEntityEnum>(); + for (EchoBaseUserEntityEnum echoBaseEntityEnum : echoBaseEntityEnums) { // Get all entities in package fr.ifremer.echobase.entities.references Class<? extends TopiaEntity> contract = echoBaseEntityEnum.getContract(); @@ -102,6 +102,6 @@ refClasses.add(echoBaseEntityEnum); } } - return refClasses.toArray(new EchoBaseEntityEnum[refClasses.size()]); + return refClasses.toArray(new EchoBaseUserEntityEnum[refClasses.size()]); } } Modified: trunk/echobase-services/pom.xml =================================================================== --- trunk/echobase-services/pom.xml 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/pom.xml 2013-12-22 00:29:17 UTC (rev 925) @@ -98,6 +98,11 @@ <version>${project.version}</version> </dependency> + <dependency> + <groupId>javax</groupId> + <artifactId>javaee-api</artifactId> + </dependency> + <!-- nuiton dependencies --> <dependency> @@ -155,6 +160,11 @@ </dependency> <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-service-csv</artifactId> + </dependency> + + <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,12 +24,16 @@ import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.config.EchoBaseConfiguration; -import fr.ifremer.echobase.entities.TopiaEchoBaseInternalPersistenceContext; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; import org.apache.commons.lang3.time.DateUtils; -import org.nuiton.topia.TopiaContextFactory; +import org.nuiton.topia.persistence.TopiaDao; +import org.nuiton.topia.persistence.TopiaEntity; +import javax.inject.Named; +import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.Date; import java.util.Locale; @@ -44,14 +48,17 @@ protected final Locale locale; - protected TopiaEchoBasePersistenceContext echoBasePersistenceContext; + protected EchoBaseUserTopiaApplicationContext echoBaseApplicationContext; - protected TopiaEchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext; + protected EchoBaseUserPersistenceContext echoBaseUserPersistenceContext; + protected EchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext; + protected EchoBaseConfiguration configuration; protected EchoBaseDbMeta dbMeta; + protected EchobaseAieOC injector; public static EchoBaseServiceContext newContext( Locale locale, EchoBaseConfiguration configuration, @@ -67,26 +74,37 @@ this.locale = locale; this.configuration = configuration; this.dbMeta = dbMeta; + this.injector= new ServiceEchobaseAieOC(); } @Override - public TopiaEchoBasePersistenceContext getEchoBasePersistenceContext() { - return echoBasePersistenceContext; + public EchoBaseUserTopiaApplicationContext getEchoBaseUserApplicationContext() { + return echoBaseApplicationContext; } @Override - public void setEchoBasePersistenceContext(TopiaEchoBasePersistenceContext echoBasePersistenceContext) { - this.echoBasePersistenceContext = echoBasePersistenceContext; + public void setEchoBaseUserApplicationContext(EchoBaseUserTopiaApplicationContext echoBaseApplicationContext) { + this.echoBaseApplicationContext = echoBaseApplicationContext; } @Override - public TopiaEchoBaseInternalPersistenceContext getEchoBaseInternalPersistenceContext() { + public EchoBaseUserPersistenceContext getEchoBaseUserPersistenceContext() { + return echoBaseUserPersistenceContext; + } + + @Override + public void setEchoBaseUserPersistenceContext(EchoBaseUserPersistenceContext userTopiaPersistenceContext) { + this.echoBaseUserPersistenceContext = userTopiaPersistenceContext; + } + + @Override + public EchoBaseInternalPersistenceContext getEchoBaseInternalPersistenceContext() { return echoBaseInternalPersistenceContext; } @Override - public void setEchoBaseInternalPersistenceContext(TopiaEchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext) { - this.echoBaseInternalPersistenceContext = echoBaseInternalPersistenceContext; + public void setEchoBaseInternalPersistenceContext(EchoBaseInternalPersistenceContext internalTopiaPersistenceContext) { + this.echoBaseInternalPersistenceContext = internalTopiaPersistenceContext; } @Override @@ -127,14 +145,22 @@ throw new EchoBaseTechnicalException(e); } - service.setServiceContext(this); + // inject + try { + injector.inject(this, service); + } catch (IllegalAccessException e) { + throw new EchoBaseTechnicalException(e); + } catch (ClassNotFoundException e) { + throw new EchoBaseTechnicalException(e); + } +// service.setServiceContext(this); return service; } @Override - public String getWorkgingDbUrl() { - String result = getEchoBasePersistenceContext().getConfig().getProperty(TopiaContextFactory.CONFIG_URL); + public String getUserDbUrl() { + String result = getEchoBaseUserPersistenceContext().getUrl(); return result; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -33,6 +33,6 @@ */ public interface EchoBaseService { - void setServiceContext(EchoBaseServiceContext serviceContext); +// void setServiceContext(EchoBaseServiceContext serviceContext); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,9 +24,9 @@ package fr.ifremer.echobase.services; import fr.ifremer.echobase.config.EchoBaseConfiguration; -import fr.ifremer.echobase.entities.TopiaEchoBaseInternalPersistenceContext; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; -import fr.ifremer.echobase.entities.spatial.SpatialDataCache; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; import java.util.Date; @@ -42,14 +42,18 @@ */ public interface EchoBaseServiceContext { - TopiaEchoBasePersistenceContext getEchoBasePersistenceContext(); + EchoBaseUserTopiaApplicationContext getEchoBaseUserApplicationContext(); - void setEchoBasePersistenceContext(TopiaEchoBasePersistenceContext internalPersistenceContext); + void setEchoBaseUserApplicationContext(EchoBaseUserTopiaApplicationContext applicationContext); - TopiaEchoBaseInternalPersistenceContext getEchoBaseInternalPersistenceContext(); + EchoBaseUserPersistenceContext getEchoBaseUserPersistenceContext(); - void setEchoBaseInternalPersistenceContext(TopiaEchoBaseInternalPersistenceContext internalPersistenceContext); + void setEchoBaseUserPersistenceContext(EchoBaseUserPersistenceContext userTopiaPersistenceContext); + EchoBaseInternalPersistenceContext getEchoBaseInternalPersistenceContext(); + + void setEchoBaseInternalPersistenceContext(EchoBaseInternalPersistenceContext internalTopiaPersistenceContext); + Locale getLocale(); EchoBaseConfiguration getConfiguration(); @@ -58,7 +62,7 @@ Date newDate(); - String getWorkgingDbUrl(); + String getUserDbUrl(); <S extends EchoBaseService> S newService(Class<S> serviceClass); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,19 +23,9 @@ package fr.ifremer.echobase.services; import fr.ifremer.echobase.config.EchoBaseConfiguration; -import fr.ifremer.echobase.entities.TopiaEchoBaseInternalPersistenceContext; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; -import fr.ifremer.echobase.services.service.DbEditorService; -import fr.ifremer.echobase.services.service.DecoratorService; -import fr.ifremer.echobase.services.service.InternalDbPersistenceService; -import fr.ifremer.echobase.services.service.UserService; -import fr.ifremer.echobase.services.service.exportdb.ExportDbService; -import fr.ifremer.echobase.services.service.exportdb.ExportService; -import fr.ifremer.echobase.services.service.exportquery.ExportQueryService; -import fr.ifremer.echobase.services.service.importdb.ImportDbService; -import fr.ifremer.echobase.services.service.removedata.RemoveDataService; -import fr.ifremer.echobase.services.service.spatial.SpatialService; +import javax.inject.Inject; import java.util.Date; import java.util.Locale; @@ -45,31 +35,19 @@ */ public class EchoBaseServiceSupport implements EchoBaseService { + @Inject protected EchoBaseServiceContext serviceContext; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - this.serviceContext = serviceContext; - } - protected <E extends EchoBaseService> E newService(Class<E> serviceClass) { return serviceContext.newService(serviceClass); } -// public TopiaEchoBasePersistenceContext getEchoBasePersistenceContext() { -// return serviceContext.getEchoBasePersistenceContext(); -// } - - public TopiaEchoBaseInternalPersistenceContext getEchoBaseInternalPersistenceContext() { - return serviceContext.getEchoBaseInternalPersistenceContext(); - } - public final EchoBaseConfiguration getConfiguration() { return serviceContext.getConfiguration(); } - protected final String getWorkgingDbUrl() { - return serviceContext.getWorkgingDbUrl(); + protected final String getUserDbUrl() { + return serviceContext.getUserDbUrl(); } protected final Locale getLocale() { @@ -88,48 +66,4 @@ return getConfiguration().getCsvSeparator(); } - public DbEditorService getDbEditorService() { - return newService(DbEditorService.class); - } - - public DecoratorService getDecoratorService() { - return newService(DecoratorService.class); - } - - public InternalDbPersistenceService getInternalDbPersistenceService() { - return newService(InternalDbPersistenceService.class); - } - -// public WorkingDbPersistenceService getWorkingDbPersistenceService() { -// return newService(WorkingDbPersistenceService.class); -// } - - public UserService getUserService() { - return newService(UserService.class); - } - - public SpatialService getSpatialService() { - return newService(SpatialService.class); - } - - public ExportService getExportService() { - return newService(ExportService.class); - } - - public ExportDbService getExportDbService() { - return newService(ExportDbService.class); - } - - public ImportDbService getImportDbService() { - return newService(ImportDbService.class); - } - - public RemoveDataService getRemoveDataService() { - return newService(RemoveDataService.class); - } - - public ExportQueryService getExportQueryService() { - return newService(ExportQueryService.class); - } - } Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchobaseAieOC.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchobaseAieOC.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchobaseAieOC.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,55 @@ +package fr.ifremer.echobase.services; + +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.ReflectUtil; + +import javax.inject.Inject; +import java.lang.reflect.Field; + +/** + * To inject some stuff. + * <p/> + * Created on 12/21/13. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.6 + */ +public abstract class EchobaseAieOC { + + /** Logger. */ + private static final Log log = LogFactory.getLog(EchobaseAieOC.class); + + protected abstract Object toInject(EchoBaseServiceContext serviceContext, Field field) throws ClassNotFoundException; + + public void inject(EchoBaseServiceContext serviceContext, Object o) throws IllegalAccessException, ClassNotFoundException { + + Iterable<Field> declaredFields = Iterables.filter( + ReflectUtil.getAllDeclaredFields(o.getClass()), + new Predicate<Field>() { + @Override + public boolean apply(Field input) { + return input.isAnnotationPresent(Inject.class); + } + }); + + for (Field field : declaredFields) { + + Object toInject = toInject(serviceContext, field); + + if (toInject != null) { + + if (log.isDebugEnabled()) { + log.debug(toInject + " in action " + o + " in " + + field.getName()); + } + if (!field.isAccessible()) { + field.setAccessible(true); + } + field.set(o, toInject); + } + } + } +} Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchobaseAieOC.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ProgressModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ProgressModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ProgressModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -22,7 +22,7 @@ */ package fr.ifremer.echobase.services; -import org.nuiton.topia.persistence.csv.CsvProgressModel; +import org.nuiton.topia.service.csv.CsvProgressModel; import java.io.Serializable; Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ServiceEchobaseAieOC.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ServiceEchobaseAieOC.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ServiceEchobaseAieOC.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,54 @@ +package fr.ifremer.echobase.services; + +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; + +import java.lang.reflect.Field; + +/** + * Created on 12/21/13. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.6 + */ +public class ServiceEchobaseAieOC extends EchobaseAieOC { + + @Override + protected Object toInject(EchoBaseServiceContext serviceContext, + Field field) throws ClassNotFoundException { + + Class<?> propertyType = field.getType(); + Object toInject = null; + if (EchoBaseUserPersistenceContext.class.isAssignableFrom(propertyType)) { + toInject = serviceContext.getEchoBaseUserPersistenceContext(); + + } + if (EchoBaseInternalPersistenceContext.class.isAssignableFrom(propertyType)) { + toInject = serviceContext.getEchoBaseInternalPersistenceContext(); + + } else if (EchoBaseServiceContext.class.isAssignableFrom(propertyType)) { + toInject = serviceContext; + + } else if (EchoBaseService.class.isAssignableFrom(propertyType)) { + + Class<? extends EchoBaseService> serviceClass = + (Class<? extends EchoBaseService>) propertyType; + toInject = serviceContext.newService(serviceClass); + + } +// else if (TopiaDao.class.isAssignableFrom(propertyType)) { +// +// Class<? extends TopiaDao> daoClass = +// (Class<? extends TopiaDao>) propertyType; +// +// // need then also a @Named annotation with type of entity +// +// Named named = field.getAnnotation(Named.class); +// String entityClassFqn = named.value(); +// Class<TopiaEntity> entityClass = (Class<TopiaEntity>) Class.forName(entityClassFqn); +// toInject = serviceContext.getEchoBaseUserPersistenceContext().getDao(entityClass, daoClass); +// } + + return toInject; + } +} Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ServiceEchobaseAieOC.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,10 +29,10 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.AbstractEchoBaseDao; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; -import fr.ifremer.echobase.services.EchoBaseServiceContext; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -44,10 +44,9 @@ import org.nuiton.csv.ImportableColumn; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.JXPathDecorator; -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.EntityCsvModel; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.ColumnMeta; import org.nuiton.topia.persistence.metadata.DbMeta; import org.nuiton.topia.persistence.metadata.TableMeta; @@ -55,11 +54,15 @@ import org.nuiton.topia.persistence.pager.FilterRuleGroupOperator; import org.nuiton.topia.persistence.pager.FilterRuleOperator; import org.nuiton.topia.persistence.pager.TopiaPagerBean; +import org.nuiton.topia.persistence.util.TopiaUtil; +import org.nuiton.topia.service.csv.EntityCsvModel; import org.nuiton.util.PagerBeanUtil; import org.nuiton.util.beans.BeanMonitor; import org.nuiton.util.beans.PropertyDiff; +import javax.inject.Inject; import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Locale; @@ -78,21 +81,27 @@ /** Logger. */ private static final Log log = LogFactory.getLog(DbEditorService.class); - private WorkingDbPersistenceService persistenceService; + @Inject + private UserDbPersistenceService persistenceService; - private TopiaEchoBasePersistenceContext persistenceContext; + @Inject + private DecoratorService decoratorService; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); - persistenceContext = serviceContext.getEchoBasePersistenceContext(); - } + @Inject + private EchoBaseUserPersistenceContext persistenceContext; + +// @Override +// public void setServiceContext(EchoBaseServiceContext serviceContext) { +// super.setServiceContext(serviceContext); +// persistenceService = serviceContext.newService(UserDbPersistenceService.class); +// persistenceContext = serviceContext.getEchoBaseUserPersistenceContext(); +// } + public <E extends TopiaEntity> List<E> getForeignData(Class<E> entityType) { Preconditions.checkNotNull(entityType); try { - TopiaDAO<E> dao = persistenceContext.getDAO(entityType); + TopiaDao<E> dao = persistenceContext.getDao(entityType); List<E> result = dao.findAll(); return result; @@ -101,15 +110,15 @@ } } - public TableMeta<EchoBaseEntityEnum> getTableMeta(EchoBaseEntityEnum tableName) { - DbMeta<EchoBaseEntityEnum> dbMeta = getDbMeta(); - TableMeta<EchoBaseEntityEnum> result = dbMeta.getTable(tableName); + public TableMeta<EchoBaseUserEntityEnum> getTableMeta(EchoBaseUserEntityEnum tableName) { + DbMeta<EchoBaseUserEntityEnum> dbMeta = getDbMeta(); + TableMeta<EchoBaseUserEntityEnum> result = dbMeta.getTable(tableName); return result; } - public Map<?, ?>[] getData(EchoBaseEntityEnum type, TopiaPagerBean pager) { + public Map<?, ?>[] getData(EchoBaseUserEntityEnum type, TopiaPagerBean pager) { - TableMeta<EchoBaseEntityEnum> meta = getTableMeta(type); + TableMeta<EchoBaseUserEntityEnum> meta = getTableMeta(type); List<TopiaEntity> entities = getEntities(meta, pager); @@ -126,16 +135,16 @@ return rows; } - public <E extends TopiaEntity> List<E> getEntities(TableMeta<EchoBaseEntityEnum> tableMeta, + public <E extends TopiaEntity> List<E> getEntities(TableMeta<EchoBaseUserEntityEnum> tableMeta, TopiaPagerBean pager) { - EchoBaseEntityEnum entityEnum = tableMeta.getSource(); + EchoBaseUserEntityEnum entityEnum = tableMeta.getSource(); try { - TopiaDAO<E> dao = (TopiaDAO<E>) persistenceContext.getDAO(entityEnum.getContract()); + AbstractEchoBaseDao<E> dao = (AbstractEchoBaseDao<E>) persistenceContext.getDao(entityEnum.getContract()); List<Object> paramsList = Lists.newArrayList(); - String hql = dao.createSimpleQuery("e"); + String hql = dao.newFromClause("e"); if (pager != null && pager.canFilter()) { String filterHql = getFilterHql(tableMeta, pager, paramsList); @@ -149,7 +158,8 @@ } - long count = dao.countByQuery("SELECT COUNT(*) " + hql, params); + Map<String, Object> hqlParameters = TopiaUtil.convertPropertiesArrayToMap(params); + Long count = dao.findAny("SELECT COUNT(*) " + hql, hqlParameters); if (pager != null) { @@ -157,37 +167,36 @@ PagerBeanUtil.computeRecordIndexesAndPagesNumber(pager); } - List<E> result = dao.findAllByQueryAndPager(hql, pager, params); + List<E> result = dao.find(hql, hqlParameters, pager); return result; } catch (TopiaException eee) { throw new EchoBaseTechnicalException("Could not obtain data", eee); } } - public <E extends TopiaEntity> Iterable<E> iterateOnEntities(TableMeta<EchoBaseEntityEnum> tableMeta, + public <E extends TopiaEntity> Iterable<E> iterateOnEntities(TableMeta<EchoBaseUserEntityEnum> tableMeta, String extraWhereQuery) { try { - TopiaDAO<E> dao = (TopiaDAO<E>) persistenceContext.getDAO(tableMeta.getSource().getContract()); + AbstractEchoBaseDao<E> dao = (AbstractEchoBaseDao<E>) persistenceContext.getDao(tableMeta.getSource().getContract()); - String hql = "FROM " + - dao.getTopiaEntityEnum().getImplementationFQN() + " e"; + String hql = dao.newFromClause("e"); if (extraWhereQuery != null) { hql += " WHERE " + extraWhereQuery; } hql += " ORDER BY e.id"; - Iterable<E> result = dao.findAllLazyByQuery(5000, hql); + Iterable<E> result = dao.forHql(hql, Collections.<String, Object>emptyMap()).findAllLazy(5000); return result; } catch (TopiaException eee) { throw new EchoBaseTechnicalException("Could not obtain data", eee); } } - public Map<?, ?> getData(TableMeta<EchoBaseEntityEnum> tableMeta, String topiaId) { + public Map<?, ?> getData(TableMeta<EchoBaseUserEntityEnum> tableMeta, String topiaId) { - EchoBaseEntityEnum entityEnum = tableMeta.getSource(); + EchoBaseUserEntityEnum entityEnum = tableMeta.getSource(); try { - TopiaDAO<?> dao = persistenceContext.getDAO(entityEnum.getContract()); + AbstractEchoBaseDao<?> dao = (AbstractEchoBaseDao<?>) persistenceContext.getDao(entityEnum.getContract()); TopiaEntity entity = dao.findByTopiaId(topiaId); ExportModel<TopiaEntity> model = buildForLoad(tableMeta, TopiaEntity.PROPERTY_TOPIA_ID, true); return loadRow(entity, model); @@ -196,7 +205,7 @@ } } - public void saveEntity(TableMeta<EchoBaseEntityEnum> meta, + public void saveEntity(TableMeta<EchoBaseUserEntityEnum> meta, Map<String, String> properties, EchoBaseUser user) { @@ -231,7 +240,7 @@ persistenceService.commit(); } - public boolean saveEntity(TableMeta<EchoBaseEntityEnum> tableMeta, + public boolean saveEntity(TableMeta<EchoBaseUserEntityEnum> tableMeta, String messagePrefix, TopiaEntity entity, EchoBaseUser user, @@ -242,7 +251,7 @@ String id = entity.getTopiaId(); try { - TopiaDAO<?> dao = persistenceContext.getDAO(tableMeta.getSource().getContract()); + TopiaDao<?> dao = persistenceContext.getDao(tableMeta.getSource().getContract()); TopiaEntity entityToSave; @@ -307,10 +316,10 @@ } protected <O> Decorator<O> getDecorator(Class<O> type) { - return getDecoratorService().getDecorator(getLocale(), type, null); + return decoratorService.getDecorator(getLocale(), type, null); } - protected String getFilterHql(TableMeta<EchoBaseEntityEnum> tableMeta, + protected String getFilterHql(TableMeta<EchoBaseUserEntityEnum> tableMeta, TopiaPagerBean pager, List<Object> params) { Preconditions.checkNotNull(pager); @@ -426,7 +435,7 @@ return filterHql; } - protected void createEntityModificationLog(TableMeta<EchoBaseEntityEnum> tableMeta, + protected void createEntityModificationLog(TableMeta<EchoBaseUserEntityEnum> tableMeta, String messagePrefix, TopiaEntity entity, EchoBaseUser user, @@ -471,11 +480,11 @@ // replace by the decorate value if (sourceValue != null) { - sourceValue = getDecoratorService().decorate( + sourceValue = decoratorService.decorate( l, sourceValue, null); } if (targetValue != null) { - targetValue = getDecoratorService().decorate( + targetValue = decoratorService.decorate( l, targetValue, null); } } @@ -530,9 +539,9 @@ return row; } - protected <E extends TopiaEntity> ImportExportModel<E> buildForSave(TableMeta<EchoBaseEntityEnum> meta) { + protected <E extends TopiaEntity> ImportExportModel<E> buildForSave(TableMeta<EchoBaseUserEntityEnum> meta) { - EntityCsvModel<EchoBaseEntityEnum, E> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseUserEntityEnum, E> model = EntityCsvModel.newModel( getConfiguration().getCsvSeparator(), meta, TopiaEntity.PROPERTY_TOPIA_ID @@ -560,11 +569,11 @@ return model; } - protected <E extends TopiaEntity> ExportModel<E> buildForLoad(TableMeta<EchoBaseEntityEnum> meta, + protected <E extends TopiaEntity> ExportModel<E> buildForLoad(TableMeta<EchoBaseUserEntityEnum> meta, String idName, boolean addDecorated) { - EntityCsvModel<EchoBaseEntityEnum, E> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseUserEntityEnum, E> model = EntityCsvModel.newModel( getConfiguration().getCsvSeparator(), meta, idName @@ -620,7 +629,7 @@ // List<E> result; // EchoBaseEntityEnum entityEnum = tableMeta.getSource(); // try { -// TopiaDAO<E> dao = (TopiaDAO<E>) getDAO(entityEnum.getContract()); +// TopiaDao<E> dao = (TopiaDao<E>) getDAO(entityEnum.getContract()); // // // first query to count datas // TopiaQuery countQuery = dao.createQuery("e"); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DecoratorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DecoratorService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DecoratorService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -88,11 +88,11 @@ import fr.ifremer.echobase.entities.references.VesselType; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import org.apache.commons.collections.CollectionUtils; -import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorMulti18nProvider; import org.nuiton.decorator.DecoratorUtil; import org.nuiton.decorator.JXPathDecorator; +import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; import java.util.List; Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/InternalDbPersistenceService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/InternalDbPersistenceService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/InternalDbPersistenceService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,182 +0,0 @@ -package fr.ifremer.echobase.services.service; - -/* - * #%L - * EchoBase :: Services - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import fr.ifremer.echobase.entities.AbstractTopiaEchoBaseInternalPersistenceContext; -import fr.ifremer.echobase.entities.EchoBaseInternalEntityEnum; -import fr.ifremer.echobase.entities.EchoBaseUserDAO; -import fr.ifremer.echobase.entities.ExportQueryDAO; -import fr.ifremer.echobase.entities.WorkingDbConfigurationDAO; -import fr.ifremer.echobase.services.EchoBaseServiceSupport; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaIdFactory; - -import java.util.List; -import java.util.Map; -import java.util.Properties; - -/** - * TODO - * - * @author tchemit <chemit@codelutin.com> - * @since 2.2 - */ -public class InternalDbPersistenceService extends EchoBaseServiceSupport { - - - public void commitTransaction() { - getEchoBaseInternalPersistenceContext().commitTransaction(); - } - - public WorkingDbConfigurationDAO getWorkingDbConfigurationDAO() throws TopiaException { - return getEchoBaseInternalPersistenceContext().getWorkingDbConfigurationDAO(); - } - - public <E extends TopiaEntity> TopiaDAO<E> getDAO(Class<E> entityClass) { - return getEchoBaseInternalPersistenceContext().getDAO(entityClass); - } - - public <E extends TopiaEntity, D extends TopiaDAO<E>> D getDAO(Class<E> entityClass, Class<D> daoClass) { - return getEchoBaseInternalPersistenceContext().getDAO(entityClass, daoClass); - } - - public boolean isTableExists(Class<?> clazz) { - return getEchoBaseInternalPersistenceContext().isTableExists(clazz); - } - - public <T extends TopiaEntity> void replicateEntity(TopiaContext destinationContext, T entity) throws IllegalArgumentException { - getEchoBaseInternalPersistenceContext().replicateEntity(destinationContext, entity); - } - - public static String getModelName() { - return AbstractTopiaEchoBaseInternalPersistenceContext.getModelName(); - } - - public Properties getConfig() { - return getEchoBaseInternalPersistenceContext().getConfig(); - } - - public static <T extends TopiaEntity> Class<T> getContractClass(Class<T> klass) { - return AbstractTopiaEchoBaseInternalPersistenceContext.getContractClass(klass); - } - - - public List<Class<?>> getPersistenceClasses() { - return getEchoBaseInternalPersistenceContext().getPersistenceClasses(); - } - - public void rollbackTransaction() { - getEchoBaseInternalPersistenceContext().rollbackTransaction(); - } - - public static String getModelVersion() { - return AbstractTopiaEchoBaseInternalPersistenceContext.getModelVersion(); - } - - public void createSchema() { - getEchoBaseInternalPersistenceContext().createSchema(); - } - - public EchoBaseUserDAO getEchoBaseUserDAO() throws TopiaException { - return getEchoBaseInternalPersistenceContext().getEchoBaseUserDAO(); - } - - public boolean isClosed() { - return getEchoBaseInternalPersistenceContext().isClosed(); - } - - public TopiaIdFactory getTopiaIdFactory() { - return getEchoBaseInternalPersistenceContext().getTopiaIdFactory(); - } - - public void setUseFlushMode(boolean useFlushMode) { - getEchoBaseInternalPersistenceContext().setUseFlushMode(useFlushMode); - } - - public <E extends TopiaEntity> E findByTopiaId(String topiaId) { - return getEchoBaseInternalPersistenceContext().findByTopiaId(topiaId); - } - - public static EchoBaseInternalEntityEnum[] getContracts() { - return AbstractTopiaEchoBaseInternalPersistenceContext.getContracts(); - } - - public void closeContext() { - getEchoBaseInternalPersistenceContext().closeContext(); - } - - public String getSchemaName() { - return getEchoBaseInternalPersistenceContext().getSchemaName(); - } - - public ExportQueryDAO getExportQueryDAO() throws TopiaException { - return getEchoBaseInternalPersistenceContext().getExportQueryDAO(); - } - - public void dropSchema() { - getEchoBaseInternalPersistenceContext().dropSchema(); - } - - public void updateSchema() { - getEchoBaseInternalPersistenceContext().updateSchema(); - } - - public void update(TopiaEntity entity) { - getEchoBaseInternalPersistenceContext().update(entity); - } - - public void replicate(TopiaContext destinationContext, Object... entityAndCondition) throws IllegalArgumentException { - getEchoBaseInternalPersistenceContext().replicate(destinationContext, entityAndCondition); - } - - public <T extends TopiaEntity> void replicateEntities(TopiaContext destinationContext, List<T> entities) throws IllegalArgumentException { - getEchoBaseInternalPersistenceContext().replicateEntities(destinationContext, entities); - } - - public void showCreateSchema() { - getEchoBaseInternalPersistenceContext().showCreateSchema(); - } - - public static String getImplementationClassesAsString() { - return AbstractTopiaEchoBaseInternalPersistenceContext.getImplementationClassesAsString(); - } - - public boolean isSchemaEmpty() { - return getEchoBaseInternalPersistenceContext().isSchemaEmpty(); - } - -// public <E extends TopiaEntity> E getEntityById(Class<E> entityType, String id) { -// return getEchoBaseInternalPersistenceContext().getEntityById(entityType, id); -// } - - public <E extends TopiaEntity> Map<String, String> loadSortAndDecorate(Class<E> beanType) { - - List<E> beans = getEchoBaseInternalPersistenceContext().getDAO(beanType).findAll(); - return getDecoratorService().sortAndDecorate(getLocale(), beans, null); - } - -} Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java (from rev 924, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/WorkingDbPersistenceService.java) =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,777 @@ +package fr.ifremer.echobase.services.service; + +/* + * #%L + * EchoBase :: Services + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2013 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.google.common.base.Function; +import com.google.common.base.Optional; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; +import com.google.common.collect.Maps; +import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; +import fr.ifremer.echobase.entities.EntityModificationLog; +import fr.ifremer.echobase.entities.ImportLog; +import fr.ifremer.echobase.entities.ImportType; +import fr.ifremer.echobase.entities.data.Category; +import fr.ifremer.echobase.entities.data.Cell; +import fr.ifremer.echobase.entities.data.Data; +import fr.ifremer.echobase.entities.data.DataAcquisition; +import fr.ifremer.echobase.entities.data.DataProcessing; +import fr.ifremer.echobase.entities.data.Echotype; +import fr.ifremer.echobase.entities.data.GearMetadataValue; +import fr.ifremer.echobase.entities.data.LengthAgeKey; +import fr.ifremer.echobase.entities.data.LengthWeightKey; +import fr.ifremer.echobase.entities.data.Operation; +import fr.ifremer.echobase.entities.data.OperationMetadataValue; +import fr.ifremer.echobase.entities.data.Result; +import fr.ifremer.echobase.entities.data.Sample; +import fr.ifremer.echobase.entities.data.SampleData; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.AcousticInstrument; +import fr.ifremer.echobase.entities.references.AgeCategory; +import fr.ifremer.echobase.entities.references.AreaOfOperation; +import fr.ifremer.echobase.entities.references.CellType; +import fr.ifremer.echobase.entities.references.DataMetadata; +import fr.ifremer.echobase.entities.references.Mission; +import fr.ifremer.echobase.entities.references.SampleDataType; +import fr.ifremer.echobase.entities.references.SampleType; +import fr.ifremer.echobase.entities.references.SexCategory; +import fr.ifremer.echobase.entities.references.SizeCategory; +import fr.ifremer.echobase.entities.references.Species; +import fr.ifremer.echobase.entities.references.SpeciesCategory; +import fr.ifremer.echobase.entities.references.Vessel; +import fr.ifremer.echobase.entities.spatial.CellPoint; +import fr.ifremer.echobase.services.EchoBaseServiceSupport; +import org.nuiton.csv.ValueParser; +import org.nuiton.topia.persistence.TopiaDao; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.TopiaIdFactory; +import org.nuiton.topia.persistence.TopiaNotFoundException; +import org.nuiton.topia.persistence.support.TopiaSqlQuery; + +import javax.inject.Inject; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * TODO + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2 + */ +public class UserDbPersistenceService extends EchoBaseServiceSupport { + + @Inject + private EchoBaseUserPersistenceContext persistenceContext; + + @Inject + private DecoratorService decoratorService; + + //------------------------------------------------------------------------// + //--- AgeCategory --------------------------------------------------------// + //------------------------------------------------------------------------// + + public AgeCategory createAgeCategory(String ageCategoryName, + String ageCategoryMeaning) { + + AgeCategory ageCategory = persistenceContext.getAgeCategoryDao().create( + AgeCategory.PROPERTY_NAME, ageCategoryName, + AgeCategory.PROPERTY_MEANING, ageCategoryMeaning + ); + return ageCategory; + } + + //------------------------------------------------------------------------// + //--- AreaOfOperation ----------------------------------------------------// + //------------------------------------------------------------------------// + + public AreaOfOperation getAreaOfOperation(String id) { + AreaOfOperation areaOfOperation = persistenceContext.getAreaOfOperationDao(). + findByTopiaId(id); + return areaOfOperation; + } + + //------------------------------------------------------------------------// + //--- Category -----------------------------------------------------------// + //------------------------------------------------------------------------// + + public Category getCategoryByEchotypeAndSpeciesCategory(Echotype echotype, + SpeciesCategory speciesCategory) { + Category category = persistenceContext.getCategoryDao().forProperties( + Category.PROPERTY_ECHOTYPE, echotype, + Category.PROPERTY_SPECIES_CATEGORY, speciesCategory + ).findAnyOrNull(); + return category; + } + + public List<Category> getCategoryUsingEchotype(Voyage voyage) throws TopiaException { + + List<Category> result = persistenceContext.getCategoryDao(). + getCategoryUsingEchotype(voyage); + return result; + } + + public List<Category> getCategorysByEchotype(Echotype echotype) { + List<Category> result = persistenceContext.getCategoryDao().forEchotypeEquals(echotype).findAll(); + return result; + } + + public Iterable<Category> getCategories(Predicate<Category> acceptPredicate) { + Iterable<Category> result = Iterables.filter( + persistenceContext.getCategoryDao(), + acceptPredicate); + return result; + } + + public long countCategoryUsingEchotype(Voyage voyage) throws TopiaException { + + long result = persistenceContext.getCategoryDao(). + countCategoryUsingEchotype(voyage); + return result; + } + + public Category createCategory(Echotype echotype, + SpeciesCategory speciesCategory) { + Category category = persistenceContext.getCategoryDao().create( + Category.PROPERTY_ECHOTYPE, echotype, + Category.PROPERTY_SPECIES_CATEGORY, speciesCategory + ); + return category; + } + + public void deleteCategory(Category category) { + persistenceContext.getCategoryDao().delete(category); + } + + public void deleteCategories(Collection<Category> categories) { + persistenceContext.getCategoryDao().deleteAll(categories); + } + + //------------------------------------------------------------------------// + //--- Cell ---------------------------------------------------------------// + //------------------------------------------------------------------------// + + public Cell getCell(String id) { + return persistenceContext.getCellDao().findByTopiaId(id); + } + + public Cell getCellContainsResult(Result result) { + return persistenceContext.getCellDao().findContainsResult(result); + } + + public long countVoyageOrphanCells(final Voyage voyage) { + return persistenceContext.getCellDao().countVoyageOrphanCells(voyage); + } + + public long countVoyageCellResults(final Voyage voyage) { + return persistenceContext.getCellDao().countVoyageCellResults(voyage); + } + + public List<String> getVoyageCellIds() throws TopiaException { + return persistenceContext.getCellDao().getVoyageCellIds(); + } + + public List<String> getVoyageCellIds(Voyage voyage) throws TopiaException { + return persistenceContext.getCellDao().getVoyageCellIds(voyage); + } + + public List<CellPoint> getVoyageCellPoints(Voyage voyage, CellType cellType) { + return persistenceContext.getCellDao().getVoyageCellPoints(voyage, cellType); + } + + public ValueParser<Cell> newCellValueParser(Voyage voyage) { + return persistenceContext.getCellDao().newCellValueParser(voyage); + } + + public Cell createCell(CellType cellType, + String cellName) { + Cell cell = persistenceContext.getCellDao().create( + Cell.PROPERTY_CELL_TYPE, cellType, + Cell.PROPERTY_NAME, cellName); + return cell; + } + + public Cell createCell(Cell cell) { + Cell cellCreated = persistenceContext.getCellDao().create(cell); + return cellCreated; + } + + public void deleteCell(Cell cell) { + persistenceContext.getCellDao().delete(cell); + } + + //------------------------------------------------------------------------// + //--- CellType -----------------------------------------------------------// + //------------------------------------------------------------------------// + + public CellType getCellType(String id) { + CellType cellType = persistenceContext.getCellTypeDao().findByTopiaId(id); + return cellType; + } + + public CellType getCellTypeById(String id) { + CellType cellType = persistenceContext.getCellTypeDao().forIdEquals(id).findUnique(); + return cellType; + } + + //------------------------------------------------------------------------// + //--- Data ---------------------------------------------------------------// + //------------------------------------------------------------------------// + + public Data createData(DataMetadata dataMetaData, String dataValue) { + Data data = persistenceContext.getDataDao().create( + Data.PROPERTY_DATA_METADATA, dataMetaData, + Data.PROPERTY_DATA_VALUE, dataValue + ); + return data; + } + + //------------------------------------------------------------------------// + //--- DataAcquisition ----------------------------------------------------// + //------------------------------------------------------------------------// + + public DataAcquisition getDataAcquisition(String id) { + return persistenceContext.getDataAcquisitionDao().findByTopiaId(id); + } + + public DataAcquisition createDataAcquisition(AcousticInstrument instrument) { + DataAcquisition dataAcquisition = + persistenceContext.getDataAcquisitionDao().create( + DataAcquisition.PROPERTY_ACOUSTIC_INSTRUMENT, instrument + ); + return dataAcquisition; + } + + public void deleteDataAcquisition(DataAcquisition dataAcquisition) { + persistenceContext.getDataAcquisitionDao().delete(dataAcquisition); + } + + //------------------------------------------------------------------------// + //--- DataMetadata -------------------------------------------------------// + //------------------------------------------------------------------------// + + public DataMetadata getDataMetadata(String id) { + DataMetadata dataMetadata = persistenceContext.getDataMetadataDao(). + findByTopiaId(id); + return dataMetadata; + } + + public DataMetadata getDataMetadataByName(String name) { + DataMetadata dataMetadata = persistenceContext.getDataMetadataDao(). + forNameEquals(name).findUnique(); + return dataMetadata; + } + + //------------------------------------------------------------------------// + //--- DataProcessing -----------------------------------------------------// + //------------------------------------------------------------------------// + + public DataProcessing createDataProcessing(String id, + String processingTemplate) { + DataProcessing dataAcquisition = persistenceContext.getDataProcessingDao().create( + DataProcessing.PROPERTY_ID, id, + DataProcessing.PROPERTY_PROCESSING_TEMPLATE, processingTemplate + ); + return dataAcquisition; + } + + public DataProcessing getDataProcessing(String id) { + DataProcessing dataAcquisition = persistenceContext.getDataProcessingDao().findByTopiaId(id); + return dataAcquisition; + } + + public DataProcessing getDataProcessingContainsCell(Cell cell) { + DataProcessing dataAcquisition = persistenceContext.getDataProcessingDao().findContainsCell(cell); + return dataAcquisition; + } + + //------------------------------------------------------------------------// + //--- Echotype -----------------------------------------------------------// + //------------------------------------------------------------------------// + + public Optional<Echotype> getOptionalEchotype(String id) { + return Optional.fromNullable(persistenceContext.getEchotypeDao().forTopiaIdEquals(id).findAnyOrNull()); + } + + public Echotype getEchotype(String id) { + return persistenceContext.getEchotypeDao().findByTopiaId(id); + } + + public Echotype createEchotype(Echotype echotype) { + Echotype echotypeCreated = persistenceContext.getEchotypeDao().create(echotype); + return echotypeCreated; + } + + public void deleteEchotype(Echotype echotype) { + persistenceContext.getEchotypeDao().delete(echotype); + } + + //------------------------------------------------------------------------// + //--- EntityModificationLog ----------------------------------------------// + //------------------------------------------------------------------------// + + public EntityModificationLog createEntityModificationLog(String entityType, + String entityId, + String userEmail, + Date date, + String comment) { + EntityModificationLog result = persistenceContext.getEntityModificationLogDao().create( + EntityModificationLog.PROPERTY_ENTITY_TYPE, entityType, + EntityModificationLog.PROPERTY_ENTITY_ID, entityId, + EntityModificationLog.PROPERTY_MODIFICATION_USER, userEmail, + EntityModificationLog.PROPERTY_MODIFICATION_DATE, date, + EntityModificationLog.PROPERTY_MODIFICATION_TEXT, comment + ); + return result; + } + + //------------------------------------------------------------------------// + //--- GearMetadataValue --------------------------------------------------// + //------------------------------------------------------------------------// + + public GearMetadataValue createGearMetadataValue(GearMetadataValue gearMetadataValue) { + GearMetadataValue gearMetadataValueCreated = persistenceContext.getGearMetadataValueDao().create(gearMetadataValue); + return gearMetadataValueCreated; + } + + //------------------------------------------------------------------------// + //--- ImportLog ----------------------------------------------------------// + //------------------------------------------------------------------------// + + public List<ImportLog> getImportLogs() { + return persistenceContext.getImportLogDao().findAll(); + } + + public ImportLog getImportLog(String id) { + return persistenceContext.getImportLogDao().findByTopiaId(id); + } + + public ImportLog createImportLog(String voyageId, + ImportType importType, + String userEMail, + Date date, + String comment, + List<String> importIds) { + ImportLog importLog = persistenceContext.getImportLogDao().create( + ImportLog.PROPERTY_VOYAGE_ID, voyageId, + ImportLog.PROPERTY_IMPORT_TYPE, importType, + ImportLog.PROPERTY_IMPORT_USER, userEMail, + ImportLog.PROPERTY_IMPORT_DATE, date, + ImportLog.PROPERTY_IMPORT_TEXT, comment, + ImportLog.PROPERTY_IMPORT_ID, importIds + ); + return importLog; + } + + public void deleteImportLog(ImportLog importLog) { + persistenceContext.getImportLogDao().delete(importLog); + } + + //------------------------------------------------------------------------// + //--- LengthAgeKey -------------------------------------------------------// + //------------------------------------------------------------------------// + + public LengthAgeKey getLengthAgeKey(String id) { + return persistenceContext.getLengthAgeKeyDao().findByTopiaId(id); + } + + public LengthAgeKey createLengthAgeKey(LengthAgeKey lengthAgeKey) { + LengthAgeKey lengthAgeKeyCreated = persistenceContext.getLengthAgeKeyDao().create(lengthAgeKey); + return lengthAgeKeyCreated; + } + + public void deleteLengthAgeKey(LengthAgeKey lengthAgeKey) { + persistenceContext.getLengthAgeKeyDao().delete(lengthAgeKey); + } + + //------------------------------------------------------------------------// + //--- LengthWeightKey ----------------------------------------------------// + //------------------------------------------------------------------------// + + public LengthWeightKey getLengthWeightKey(String id) { + return persistenceContext.getLengthWeightKeyDao().findByTopiaId(id); + } + + public LengthWeightKey createLengthWeightKey(LengthWeightKey lengthWeightKey) { + LengthWeightKey lengthWeightKeyCreated = persistenceContext.getLengthWeightKeyDao().create(lengthWeightKey); + return lengthWeightKeyCreated; + } + + public void deleteLengthWeightKey(LengthWeightKey lengthAgeKey) { + persistenceContext.getLengthWeightKeyDao().delete(lengthAgeKey); + } + + //------------------------------------------------------------------------// + //--- Mission ------------------------------------------------------------// + //------------------------------------------------------------------------// + + public Mission getMission(String id) { + Mission mission = persistenceContext.getMissionDao().findByTopiaId(id); + return mission; + } + + public boolean isMissionExistByName(String missionname) { + boolean result = persistenceContext.getMissionDao().forNameEquals(missionname).exists(); + return result; + } + + public Mission createMission(Mission mission) { + Mission missionCreated = persistenceContext.getMissionDao().create(mission); + return missionCreated; + } + + //------------------------------------------------------------------------// + //--- Operation ----------------------------------------------------------// + //------------------------------------------------------------------------// + + public Operation getOperation(String id) { + return persistenceContext.getOperationDao().findByTopiaId(id); + } + + public Operation getOperationContainsSample(Sample sample) { + Operation dataAcquisition = persistenceContext.getOperationDao().findContainsSample(sample); + return dataAcquisition; + } + + public Operation createOperation(Operation operation) { + Operation operationCreated = persistenceContext.getOperationDao().create(operation); + return operationCreated; + } + + public void deleteOperation(Operation operation) { + persistenceContext.getOperationDao().delete(operation); + } + + //------------------------------------------------------------------------// + //--- OperationMetadataValue ---------------------------------------------// + //------------------------------------------------------------------------// + + public OperationMetadataValue createOperationMetadataValue(OperationMetadataValue operationMetadataValue) { + OperationMetadataValue operationMetadataValueCreated = persistenceContext.getOperationMetadataValueDao().create(operationMetadataValue); + return operationMetadataValueCreated; + } + + //------------------------------------------------------------------------// + //--- Result -------------------------------------------------------------// + //------------------------------------------------------------------------// + + public List<Result> getAllWithCategoryCellAndDataMetadata(Set<String> cellIds, + DataMetadata requiredDataMetadata, + List<String> categoryIds) { + return persistenceContext.getResultDao().findAllWithCategoryCellAndDataMetadata(cellIds, requiredDataMetadata, categoryIds); + } + + public List<Result> getAllWithNoCategoryCellAndDataMetadata(Set<String> cellIds, + DataMetadata requiredDataMetadata) { + return persistenceContext.getResultDao().findAllWithNoCategoryCellAndDataMetadata(cellIds, requiredDataMetadata); + } + + public Result getResult(String id) { + return persistenceContext.getResultDao().findByTopiaId(id); + } + + public Result createResult(Result result) { + Result resultCreated = persistenceContext.getResultDao().create(result); + return resultCreated; + } + + public void deleteResult(Result result) { + persistenceContext.getResultDao().delete(result); + } + + public void deleteResults(Collection<Result> results) { + persistenceContext.getResultDao().deleteAll(results); + } + + //------------------------------------------------------------------------// + //--- Sample -------------------------------------------------------------// + //------------------------------------------------------------------------// + + public Sample getSample(String id) { + Sample sample = persistenceContext.getSampleDao().findByTopiaId(id); + return sample; + } + + public Sample newSample() { + Sample sample = persistenceContext.getSampleDao().newInstance(); + return sample; + } + + public Sample createSample(Sample sample) { + Sample sampleCreated = persistenceContext.getSampleDao().create(sample); + return sampleCreated; + } + + public void deleteSample(Sample sample) { + persistenceContext.getSampleDao().delete(sample); + } + + //------------------------------------------------------------------------// + //--- SampleType ---------------------------------------------------------// + //------------------------------------------------------------------------// + + public SampleType getSampleTypeByName(String name) { + SampleType sampleDataType = persistenceContext.getSampleTypeDao().forNameEquals(name).findUnique(); + return sampleDataType; + } + + //------------------------------------------------------------------------// + //--- SampleData ---------------------------------------------------------// + //------------------------------------------------------------------------// + + public SampleData createSampleData(SampleDataType sampleDataType, + String label, + float value) { + SampleData sampleCreated = persistenceContext.getSampleDataDao().create( + SampleData.PROPERTY_SAMPLE_DATA_TYPE, sampleDataType, + SampleData.PROPERTY_DATA_LABEL, label, + SampleData.PROPERTY_DATA_VALUE, value + ); + return sampleCreated; + } + + public SampleData createSampleData(SampleData sample) { + SampleData sampleCreated = persistenceContext.getSampleDataDao().create( + sample); + return sampleCreated; + } + + //------------------------------------------------------------------------// + //--- SampleDataType -----------------------------------------------------// + //------------------------------------------------------------------------// + + public SampleDataType getSampleDataTypeByName(String name) { + SampleDataType sampleDataType = persistenceContext.getSampleDataTypeDao().forNameEquals(name).findUnique(); + return sampleDataType; + } + + //------------------------------------------------------------------------// + //--- SizeCategory -------------------------------------------------------// + //------------------------------------------------------------------------// + + public SizeCategory createSizeCategory(String sizeCategoryName, + String sizeCategoryMeaning) { + + SizeCategory sizeCategory = persistenceContext.getSizeCategoryDao().create( + SizeCategory.PROPERTY_NAME, sizeCategoryName, + SizeCategory.PROPERTY_MEANING, sizeCategoryMeaning + ); + return sizeCategory; + } + + //------------------------------------------------------------------------// + //--- SpeciesCategory ----------------------------------------------------// + //------------------------------------------------------------------------// + + public Optional<Species> getOptionalSpecies(String id) { + Species species = persistenceContext.getSpeciesDao().findByTopiaId( + id); + return Optional.fromNullable(species); + } + + //------------------------------------------------------------------------// + //--- SpeciesCategory ----------------------------------------------------// + //------------------------------------------------------------------------// + + public SpeciesCategory getSpeciesCategory(Species species, + SizeCategory sizeCategory, + AgeCategory ageCategory, + SexCategory sexCategory) { + SpeciesCategory category = persistenceContext.getSpeciesCategoryDao().forProperties( + SpeciesCategory.PROPERTY_SPECIES, species, + SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory, + SpeciesCategory.PROPERTY_AGE_CATEGORY, ageCategory, + SpeciesCategory.PROPERTY_SEX_CATEGORY, sexCategory + ).findAnyOrNull(); + return category; + } + + public SpeciesCategory createSpeciesCategory(Species species, + SizeCategory sizeCategory, + AgeCategory ageCategory, + SexCategory sexCategory) { + SpeciesCategory category = persistenceContext.getSpeciesCategoryDao().create( + SpeciesCategory.PROPERTY_SPECIES, species, + SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory, + SpeciesCategory.PROPERTY_AGE_CATEGORY, ageCategory, + SpeciesCategory.PROPERTY_SEX_CATEGORY, sexCategory + ); + return category; + } + + //------------------------------------------------------------------------// + //--- Transect -----------------------------------------------------------// + //------------------------------------------------------------------------// + + public Transect getTransect(String id) { + return persistenceContext.getTransectDao().findByTopiaId(id); + } + + public Transect getTransectContainsOperation(Operation operation) { + return persistenceContext.getTransectDao().findContainsOperation(operation); + } + + public Transect getTransectContainsDataAcquisition(DataAcquisition dataAcquisition) { + return persistenceContext.getTransectDao().findContainsDataAcquisition(dataAcquisition); + } + + public Transect createTransect(Transect transect) { + Transect transectCreated = persistenceContext.getTransectDao().create(transect); + return transectCreated; + } + + public void deleteTransect(Transect transect) { + persistenceContext.getTransectDao().delete(transect); + } + + //------------------------------------------------------------------------// + //--- Transit ------------------------------------------------------------// + //------------------------------------------------------------------------// + + public Transit getTransit(String id) { + return persistenceContext.getTransitDao().findByTopiaId(id); + } + + public Transit getTransitContainsTransect(Transect transect) { + return persistenceContext.getTransitDao().findContainsTransect(transect); + } + + public Transit createTransit(Transit transit) { + Transit transitCreated = persistenceContext.getTransitDao().create(transit); + return transitCreated; + } + + public void deleteTransit(Transit transit) { + persistenceContext.getTransitDao().delete(transit); + } + + //------------------------------------------------------------------------// + //--- Vessel -------------------------------------------------------------// + //------------------------------------------------------------------------// + + public Vessel getVessel(String id) { + Vessel mission = persistenceContext.getVesselDao().findByTopiaId(id); + return mission; + } + + //------------------------------------------------------------------------// + //--- Voyage -------------------------------------------------------------// + //------------------------------------------------------------------------// + + public Voyage getVoyage(String id) { + return persistenceContext.getVoyageDao().findByTopiaId(id); + } + + public long countVoyage() { + return persistenceContext.getVoyageDao().count(); + } + + public Voyage createVoyage(Voyage voyage) { + Voyage voyageCreated = persistenceContext.getVoyageDao().create(voyage); + return voyageCreated; + } + + public void deleteVoyage(Voyage voyage) { + persistenceContext.getVoyageDao().delete(voyage); + } + + //------------------------------------------------------------------------// + //--- Transversal --------------------------------------------------------// + //------------------------------------------------------------------------// + + public <E extends TopiaEntity> Map<String, String> loadSortAndDecorate(Class<E> beanType) { + + List<E> beans = persistenceContext.getDao(beanType).findAll(); + return decoratorService.sortAndDecorate(getLocale(), beans, null); + } + + public <E extends TopiaEntity, K> Map<K, E> getEntitiesMap( + Class<E> entityType, + Function<E, K> function) { + List<E> allVoyages = persistenceContext.getDao(entityType).findAll(); + Map<K, E> voyageMap = Maps.uniqueIndex( + allVoyages, function); + return voyageMap; + } + + public void executeSQL(String sqlScript) { + persistenceContext.getSqlSupport().executeSql(sqlScript); + } + + public void clear() { + persistenceContext.getHibernateSupport().getHibernateSession().clear(); + } + + public void flush() { + persistenceContext.getHibernateSupport().getHibernateSession().flush(); + } + + public void commit() { + persistenceContext.commit(); + } + + public <R> R findSingleResult(TopiaSqlQuery<R> sqlQuery) { + return persistenceContext.getSqlSupport().findSingleResult(sqlQuery); + } + + public <R> List<R> findMultipleResult(TopiaSqlQuery<R> sqlQuery) { + return persistenceContext.getSqlSupport().findMultipleResult(sqlQuery); + } + + public boolean isPostgresql() { + return persistenceContext.isPostgresql(); + } + + public boolean isSpatialAware() { + return persistenceContext.isSpatialAware(); + } + + public boolean isIdExists(String id) { + try { + boolean result = getDAOFromId(id).forTopiaIdEquals(id).exists(); + return result; + } catch (TopiaException e) { + throw new EchoBaseTechnicalException( + "Could not find out if id " + id + " exists.", e); + } + } + + protected <E extends TopiaEntity> TopiaDao<E> getDAOFromId(String id) { + try { + TopiaIdFactory topiaIdFactory = persistenceContext.getTopiaIdFactory(); + Class<E> className = topiaIdFactory.getClassName(id); + return persistenceContext.getDao(className); + } catch (TopiaNotFoundException e) { + + throw new EchoBaseTechnicalException( + "Could not find class from id: " + id, e); + } + } +} Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,14 +25,16 @@ import com.google.common.base.Preconditions; import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.EchoBaseUserDAO; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaDao; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import org.apache.commons.lang3.StringUtils; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.pager.TopiaPagerBean; import org.nuiton.util.StringUtil; +import javax.inject.Inject; import java.util.List; /** @@ -49,13 +51,16 @@ public static final String DEFAULT_USER_PASSWORD = "user"; + @Inject + EchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext; + public List<EchoBaseUser> getUsers() { return getUsers(null); } public List<EchoBaseUser> getUsers(TopiaPagerBean pager) { try { - EchoBaseUserDAO dao = getDAO(); + EchoBaseUserTopiaDao dao = getDao(); List<EchoBaseUser> users = dao.findAll(pager); return users; } catch (TopiaException eee) { @@ -66,7 +71,7 @@ public EchoBaseUser getUserByEmail(String email) { Preconditions.checkNotNull(email); try { - EchoBaseUserDAO dao = getDAO(); + EchoBaseUserTopiaDao dao = getDao(); EchoBaseUser user = dao.findByEmail(email); return user; } catch (TopiaException eee) { @@ -77,7 +82,7 @@ public EchoBaseUser getUserById(String userId) { Preconditions.checkNotNull(userId); try { - EchoBaseUser user = getDAO().findByTopiaId(userId); + EchoBaseUser user = getDao().findByTopiaId(userId); EchoBaseUser result = newUser(); result.setEmail(user.getEmail()); result.setPassword(user.getPassword()); @@ -96,12 +101,12 @@ String id = user.getTopiaId(); String password = user.getPassword(); if (StringUtils.isEmpty(id)) { - userToCreateOrUpdate = getDAO().create( + userToCreateOrUpdate = getDao().create( EchoBaseUser.PROPERTY_EMAIL, user.getEmail(), EchoBaseUser.PROPERTY_PASSWORD, encodePassword(password) ); } else { - userToCreateOrUpdate = getDAO().findByTopiaId(id); + userToCreateOrUpdate = getDao().findByTopiaId(id); userToCreateOrUpdate.setEmail(user.getEmail()); if (StringUtils.isNotEmpty(password)) { @@ -109,7 +114,7 @@ } } userToCreateOrUpdate.setAdmin(user.isAdmin()); - getEchoBaseInternalPersistenceContext().commitTransaction(); + echoBaseInternalPersistenceContext.commit(); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); } @@ -117,9 +122,9 @@ public void delete(EchoBaseUser user) { try { - EchoBaseUser userToDelete = getDAO().findByTopiaId(user.getTopiaId()); - getDAO().delete(userToDelete); - getEchoBaseInternalPersistenceContext().commitTransaction(); + EchoBaseUser userToDelete = getDao().findByTopiaId(user.getTopiaId()); + getDao().delete(userToDelete); + echoBaseInternalPersistenceContext.commit(); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); } @@ -154,13 +159,13 @@ public EchoBaseUser newUser() { try { - return getDAO().newInstance(); + return getDao().newInstance(); } catch (TopiaException e) { throw new EchoBaseTechnicalException(e); } } - protected EchoBaseUserDAO getDAO() { - return getEchoBaseInternalPersistenceContext().getEchoBaseUserDAO(); + protected EchoBaseUserTopiaDao getDao() { + return echoBaseInternalPersistenceContext.getEchoBaseUserDao(); } } Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/WorkingDbPersistenceService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/WorkingDbPersistenceService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/WorkingDbPersistenceService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,782 +0,0 @@ -package fr.ifremer.echobase.services.service; - -/* - * #%L - * EchoBase :: Services - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; -import com.google.common.collect.Maps; -import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.entities.DriverType; -import fr.ifremer.echobase.entities.EntityModificationLog; -import fr.ifremer.echobase.entities.ImportLog; -import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; -import fr.ifremer.echobase.entities.data.Category; -import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.Data; -import fr.ifremer.echobase.entities.data.DataAcquisition; -import fr.ifremer.echobase.entities.data.DataProcessing; -import fr.ifremer.echobase.entities.data.Echotype; -import fr.ifremer.echobase.entities.data.GearMetadataValue; -import fr.ifremer.echobase.entities.data.LengthAgeKey; -import fr.ifremer.echobase.entities.data.LengthWeightKey; -import fr.ifremer.echobase.entities.data.Operation; -import fr.ifremer.echobase.entities.data.OperationMetadataValue; -import fr.ifremer.echobase.entities.data.Result; -import fr.ifremer.echobase.entities.data.Sample; -import fr.ifremer.echobase.entities.data.SampleData; -import fr.ifremer.echobase.entities.data.Transect; -import fr.ifremer.echobase.entities.data.Transit; -import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.references.AcousticInstrument; -import fr.ifremer.echobase.entities.references.AgeCategory; -import fr.ifremer.echobase.entities.references.AreaOfOperation; -import fr.ifremer.echobase.entities.references.CellType; -import fr.ifremer.echobase.entities.references.DataMetadata; -import fr.ifremer.echobase.entities.references.Mission; -import fr.ifremer.echobase.entities.references.SampleDataType; -import fr.ifremer.echobase.entities.references.SampleType; -import fr.ifremer.echobase.entities.references.SexCategory; -import fr.ifremer.echobase.entities.references.SizeCategory; -import fr.ifremer.echobase.entities.references.Species; -import fr.ifremer.echobase.entities.references.SpeciesCategory; -import fr.ifremer.echobase.entities.references.Vessel; -import fr.ifremer.echobase.entities.spatial.CellPoint; -import fr.ifremer.echobase.services.EchoBaseServiceContext; -import fr.ifremer.echobase.services.EchoBaseServiceSupport; -import org.nuiton.csv.ValueParser; -import org.nuiton.topia.TopiaContextFactory; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.TopiaNotFoundException; -import org.nuiton.topia.framework.TopiaSQLQuery; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaIdFactory; - -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * TODO - * - * @author tchemit <chemit@codelutin.com> - * @since 2.2 - */ -public class WorkingDbPersistenceService extends EchoBaseServiceSupport { - - private TopiaEchoBasePersistenceContext persistenceContext; - - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); - persistenceContext = serviceContext.getEchoBasePersistenceContext(); - } - - //------------------------------------------------------------------------// - //--- AgeCategory --------------------------------------------------------// - //------------------------------------------------------------------------// - - public AgeCategory createAgeCategory(String ageCategoryName, - String ageCategoryMeaning) { - - AgeCategory ageCategory = persistenceContext.getAgeCategoryDAO().create( - AgeCategory.PROPERTY_NAME, ageCategoryName, - AgeCategory.PROPERTY_MEANING, ageCategoryMeaning - ); - return ageCategory; - } - - //------------------------------------------------------------------------// - //--- AreaOfOperation ----------------------------------------------------// - //------------------------------------------------------------------------// - - public AreaOfOperation getAreaOfOperation(String id) { - AreaOfOperation areaOfOperation = persistenceContext.getAreaOfOperationDAO(). - findByTopiaId(id); - return areaOfOperation; - } - - //------------------------------------------------------------------------// - //--- Category -----------------------------------------------------------// - //------------------------------------------------------------------------// - - public Category getCategoryByEchotypeAndSpeciesCategory(Echotype echotype, - SpeciesCategory speciesCategory) { - Category category = persistenceContext.getCategoryDAO().findByProperties( - Category.PROPERTY_ECHOTYPE, echotype, - Category.PROPERTY_SPECIES_CATEGORY, speciesCategory - ); - return category; - } - - public List<Category> getCategoryUsingEchotype(Voyage voyage) throws TopiaException { - - List<Category> result = persistenceContext.getCategoryDAO(). - getCategoryUsingEchotype(voyage); - return result; - } - - public List<Category> getCategorysByEchotype(Echotype echotype) { - List<Category> result = persistenceContext.getCategoryDAO(). - findAllByEchotype(echotype); - return result; - } - - public Iterable<Category> getCategories(Predicate<Category> acceptPredicate) { - Iterable<Category> result = Iterables.filter( - persistenceContext.getCategoryDAO(), - acceptPredicate); - return result; - } - - public long countCategoryUsingEchotype(Voyage voyage) throws TopiaException { - - long result = persistenceContext.getCategoryDAO(). - countCategoryUsingEchotype(voyage); - return result; - } - - public Category createCategory(Echotype echotype, - SpeciesCategory speciesCategory) { - Category category = persistenceContext.getCategoryDAO().create( - Category.PROPERTY_ECHOTYPE, echotype, - Category.PROPERTY_SPECIES_CATEGORY, speciesCategory - ); - return category; - } - - public void deleteCategory(Category category) { - persistenceContext.getCategoryDAO().delete(category); - } - - public void deleteCategories(Collection<Category> categories) { - persistenceContext.getCategoryDAO().deleteAll(categories); - } - - //------------------------------------------------------------------------// - //--- Cell ---------------------------------------------------------------// - //------------------------------------------------------------------------// - - public Cell getCell(String id) { - return persistenceContext.getCellDAO().findByTopiaId(id); - } - - public Cell getCellContainsResult(Result result) { - return persistenceContext.getCellDAO().findContainsResult(result); - } - - public long countVoyageOrphanCells(final Voyage voyage) { - return persistenceContext.getCellDAO().countVoyageOrphanCells(voyage); - } - - public long countVoyageCellResults(final Voyage voyage) { - return persistenceContext.getCellDAO().countVoyageCellResults(voyage); - } - - public List<String> getVoyageCellIds() throws TopiaException { - return persistenceContext.getCellDAO().getVoyageCellIds(); - } - - public List<String> getVoyageCellIds(Voyage voyage) throws TopiaException { - return persistenceContext.getCellDAO().getVoyageCellIds(voyage); - } - - public List<CellPoint> getVoyageCellPoints(Voyage voyage, CellType cellType) { - return persistenceContext.getCellDAO().getVoyageCellPoints(voyage, cellType); - } - - public ValueParser<Cell> newCellValueParser(Voyage voyage) { - return persistenceContext.getCellDAO().newCellValueParser(voyage); - } - - public Cell createCell(CellType cellType, - String cellName) { - Cell cell = persistenceContext.getCellDAO().create( - Cell.PROPERTY_CELL_TYPE, cellType, - Cell.PROPERTY_NAME, cellName); - return cell; - } - - public Cell createCell(Cell cell) { - Cell cellCreated = persistenceContext.getCellDAO().create(cell); - return cellCreated; - } - - public void deleteCell(Cell cell) { - persistenceContext.getCellDAO().delete(cell); - } - - //------------------------------------------------------------------------// - //--- CellType -----------------------------------------------------------// - //------------------------------------------------------------------------// - - public CellType getCellType(String id) { - CellType cellType = persistenceContext.getCellTypeDAO().findByTopiaId(id); - return cellType; - } - - public CellType getCellTypeById(String id) { - CellType cellType = persistenceContext.getCellTypeDAO().findById(id); - return cellType; - } - - //------------------------------------------------------------------------// - //--- Data ---------------------------------------------------------------// - //------------------------------------------------------------------------// - - public Data createData(DataMetadata dataMetaData, String dataValue) { - Data data = persistenceContext.getDataDAO().create( - Data.PROPERTY_DATA_METADATA, dataMetaData, - Data.PROPERTY_DATA_VALUE, dataValue - ); - return data; - } - - //------------------------------------------------------------------------// - //--- DataAcquisition ----------------------------------------------------// - //------------------------------------------------------------------------// - - public DataAcquisition getDataAcquisition(String id) { - return persistenceContext.getDataAcquisitionDAO().findByTopiaId(id); - } - - public DataAcquisition createDataAcquisition(AcousticInstrument instrument) { - DataAcquisition dataAcquisition = - persistenceContext.getDataAcquisitionDAO().create( - DataAcquisition.PROPERTY_ACOUSTIC_INSTRUMENT, instrument - ); - return dataAcquisition; - } - - public void deleteDataAcquisition(DataAcquisition dataAcquisition) { - persistenceContext.getDataAcquisitionDAO().delete(dataAcquisition); - } - - //------------------------------------------------------------------------// - //--- DataMetadata -------------------------------------------------------// - //------------------------------------------------------------------------// - - public DataMetadata getDataMetadata(String id) { - DataMetadata dataMetadata = persistenceContext.getDataMetadataDAO(). - findByTopiaId(id); - return dataMetadata; - } - - public DataMetadata getDataMetadataByName(String name) { - DataMetadata dataMetadata = persistenceContext.getDataMetadataDAO(). - findByName(name); - return dataMetadata; - } - - //------------------------------------------------------------------------// - //--- DataProcessing -----------------------------------------------------// - //------------------------------------------------------------------------// - - public DataProcessing createDataProcessing(String id, - String processingTemplate) { - DataProcessing dataAcquisition = persistenceContext.getDataProcessingDAO().create( - DataProcessing.PROPERTY_ID, id, - DataProcessing.PROPERTY_PROCESSING_TEMPLATE, processingTemplate - ); - return dataAcquisition; - } - - public DataProcessing getDataProcessing(String id) { - DataProcessing dataAcquisition = persistenceContext.getDataProcessingDAO().findByTopiaId(id); - return dataAcquisition; - } - - public DataProcessing getDataProcessingContainsCell(Cell cell) { - DataProcessing dataAcquisition = persistenceContext.getDataProcessingDAO().findContainsCell(cell); - return dataAcquisition; - } - - //------------------------------------------------------------------------// - //--- Echotype -----------------------------------------------------------// - //------------------------------------------------------------------------// - - public Optional<Echotype> getOptionalEchotype(String id) { - return Optional.fromNullable(persistenceContext.getEchotypeDAO().findByTopiaId(id)); - } - - public Echotype getEchotype(String id) { - return persistenceContext.getEchotypeDAO().findByTopiaId(id); - } - - public Echotype createEchotype(Echotype echotype) { - Echotype echotypeCreated = persistenceContext.getEchotypeDAO().create(echotype); - return echotypeCreated; - } - - public void deleteEchotype(Echotype echotype) { - persistenceContext.getEchotypeDAO().delete(echotype); - } - - //------------------------------------------------------------------------// - //--- EntityModificationLog ----------------------------------------------// - //------------------------------------------------------------------------// - - public EntityModificationLog createEntityModificationLog(String entityType, - String entityId, - String userEmail, - Date date, - String comment) { - EntityModificationLog result = persistenceContext.getEntityModificationLogDAO().create( - EntityModificationLog.PROPERTY_ENTITY_TYPE, entityType, - EntityModificationLog.PROPERTY_ENTITY_ID, entityId, - EntityModificationLog.PROPERTY_MODIFICATION_USER, userEmail, - EntityModificationLog.PROPERTY_MODIFICATION_DATE, date, - EntityModificationLog.PROPERTY_MODIFICATION_TEXT, comment - ); - return result; - } - - //------------------------------------------------------------------------// - //--- GearMetadataValue --------------------------------------------------// - //------------------------------------------------------------------------// - - public GearMetadataValue createGearMetadataValue(GearMetadataValue gearMetadataValue) { - GearMetadataValue gearMetadataValueCreated = persistenceContext.getGearMetadataValueDAO().create(gearMetadataValue); - return gearMetadataValueCreated; - } - - //------------------------------------------------------------------------// - //--- ImportLog ----------------------------------------------------------// - //------------------------------------------------------------------------// - - public List<ImportLog> getImportLogs() { - return persistenceContext.getImportLogDAO().findAll(); - } - - public ImportLog getImportLog(String id) { - return persistenceContext.getImportLogDAO().findByTopiaId(id); - } - - public ImportLog createImportLog(String voyageId, - ImportType importType, - String userEMail, - Date date, - String comment, - List<String> importIds) { - ImportLog importLog = persistenceContext.getImportLogDAO().create( - ImportLog.PROPERTY_VOYAGE_ID, voyageId, - ImportLog.PROPERTY_IMPORT_TYPE, importType, - ImportLog.PROPERTY_IMPORT_USER, userEMail, - ImportLog.PROPERTY_IMPORT_DATE, date, - ImportLog.PROPERTY_IMPORT_TEXT, comment, - ImportLog.PROPERTY_IMPORT_ID, importIds - ); - return importLog; - } - - public void deleteImportLog(ImportLog importLog) { - persistenceContext.getImportLogDAO().delete(importLog); - } - - //------------------------------------------------------------------------// - //--- LengthAgeKey -------------------------------------------------------// - //------------------------------------------------------------------------// - - public LengthAgeKey getLengthAgeKey(String id) { - return persistenceContext.getLengthAgeKeyDAO().findByTopiaId(id); - } - - public LengthAgeKey createLengthAgeKey(LengthAgeKey lengthAgeKey) { - LengthAgeKey lengthAgeKeyCreated = persistenceContext.getLengthAgeKeyDAO().create(lengthAgeKey); - return lengthAgeKeyCreated; - } - - public void deleteLengthAgeKey(LengthAgeKey lengthAgeKey) { - persistenceContext.getLengthAgeKeyDAO().delete(lengthAgeKey); - } - - //------------------------------------------------------------------------// - //--- LengthWeightKey ----------------------------------------------------// - //------------------------------------------------------------------------// - - public LengthWeightKey getLengthWeightKey(String id) { - return persistenceContext.getLengthWeightKeyDAO().findByTopiaId(id); - } - - public LengthWeightKey createLengthWeightKey(LengthWeightKey lengthWeightKey) { - LengthWeightKey lengthWeightKeyCreated = persistenceContext.getLengthWeightKeyDAO().create(lengthWeightKey); - return lengthWeightKeyCreated; - } - - public void deleteLengthWeightKey(LengthWeightKey lengthAgeKey) { - persistenceContext.getLengthWeightKeyDAO().delete(lengthAgeKey); - } - - //------------------------------------------------------------------------// - //--- Mission ------------------------------------------------------------// - //------------------------------------------------------------------------// - - public Mission getMission(String id) { - Mission mission = persistenceContext.getMissionDAO().findByTopiaId(id); - return mission; - } - - public boolean isMissionExistByName(String missionname) { - boolean result = persistenceContext.getMissionDAO().existByProperties(Mission.PROPERTY_NAME, missionname); - return result; - } - - public Mission createMission(Mission mission) { - Mission missionCreated = persistenceContext.getMissionDAO().create(mission); - return missionCreated; - } - - //------------------------------------------------------------------------// - //--- Operation ----------------------------------------------------------// - //------------------------------------------------------------------------// - - public Operation getOperation(String id) { - return persistenceContext.getOperationDAO().findByTopiaId(id); - } - - public Operation getOperationContainsSample(Sample sample) { - Operation dataAcquisition = persistenceContext.getOperationDAO().findContainsSample(sample); - return dataAcquisition; - } - - public Operation createOperation(Operation operation) { - Operation operationCreated = persistenceContext.getOperationDAO().create(operation); - return operationCreated; - } - - public void deleteOperation(Operation operation) { - persistenceContext.getOperationDAO().delete(operation); - } - - //------------------------------------------------------------------------// - //--- OperationMetadataValue ---------------------------------------------// - //------------------------------------------------------------------------// - - public OperationMetadataValue createOperationMetadataValue(OperationMetadataValue operationMetadataValue) { - OperationMetadataValue operationMetadataValueCreated = persistenceContext.getOperationMetadataValueDAO().create(operationMetadataValue); - return operationMetadataValueCreated; - } - - //------------------------------------------------------------------------// - //--- Result -------------------------------------------------------------// - //------------------------------------------------------------------------// - - public List<Result> getAllWithCategoryCellAndDataMetadata(Set<String> cellIds, - DataMetadata requiredDataMetadata, - List<String> categoryIds) { - return persistenceContext.getResultDAO().findAllWithCategoryCellAndDataMetadata(cellIds, requiredDataMetadata, categoryIds); - } - - public List<Result> getAllWithNoCategoryCellAndDataMetadata(Set<String> cellIds, - DataMetadata requiredDataMetadata) { - return persistenceContext.getResultDAO().findAllWithNoCategoryCellAndDataMetadata(cellIds, requiredDataMetadata); - } - - public Result getResult(String id) { - return persistenceContext.getResultDAO().findByTopiaId(id); - } - - public Result createResult(Result result) { - Result resultCreated = persistenceContext.getResultDAO().create(result); - return resultCreated; - } - - public void deleteResult(Result result) { - persistenceContext.getResultDAO().delete(result); - } - - public void deleteResults(Collection<Result> results) { - persistenceContext.getResultDAO().deleteAll(results); - } - - //------------------------------------------------------------------------// - //--- Sample -------------------------------------------------------------// - //------------------------------------------------------------------------// - - public Sample getSample(String id) { - Sample sample = persistenceContext.getSampleDAO().findByTopiaId(id); - return sample; - } - - public Sample newSample() { - Sample sample = persistenceContext.getSampleDAO().newInstance(); - return sample; - } - - public Sample createSample(Sample sample) { - Sample sampleCreated = persistenceContext.getSampleDAO().create(sample); - return sampleCreated; - } - - public void deleteSample(Sample sample) { - persistenceContext.getSampleDAO().delete(sample); - } - - //------------------------------------------------------------------------// - //--- SampleType ---------------------------------------------------------// - //------------------------------------------------------------------------// - - public SampleType getSampleTypeByName(String name) { - SampleType sampleDataType = persistenceContext.getSampleTypeDAO().findByName(name); - return sampleDataType; - } - - //------------------------------------------------------------------------// - //--- SampleData ---------------------------------------------------------// - //------------------------------------------------------------------------// - - public SampleData createSampleData(SampleDataType sampleDataType, - String label, - float value) { - SampleData sampleCreated = persistenceContext.getSampleDataDAO().create( - SampleData.PROPERTY_SAMPLE_DATA_TYPE, sampleDataType, - SampleData.PROPERTY_DATA_LABEL, label, - SampleData.PROPERTY_DATA_VALUE, value - ); - return sampleCreated; - } - - public SampleData createSampleData(SampleData sample) { - SampleData sampleCreated = persistenceContext.getSampleDataDAO().create( - sample); - return sampleCreated; - } - - //------------------------------------------------------------------------// - //--- SampleDataType -----------------------------------------------------// - //------------------------------------------------------------------------// - - public SampleDataType getSampleDataTypeByName(String name) { - SampleDataType sampleDataType = persistenceContext.getSampleDataTypeDAO().findByName(name); - return sampleDataType; - } - - //------------------------------------------------------------------------// - //--- SizeCategory -------------------------------------------------------// - //------------------------------------------------------------------------// - - public SizeCategory createSizeCategory(String sizeCategoryName, - String sizeCategoryMeaning) { - - SizeCategory sizeCategory = persistenceContext.getSizeCategoryDAO().create( - SizeCategory.PROPERTY_NAME, sizeCategoryName, - SizeCategory.PROPERTY_MEANING, sizeCategoryMeaning - ); - return sizeCategory; - } - - //------------------------------------------------------------------------// - //--- SpeciesCategory ----------------------------------------------------// - //------------------------------------------------------------------------// - - public Optional<Species> getOptionalSpecies(String id) { - Species species = persistenceContext.getSpeciesDAO().findByTopiaId( - id); - return Optional.fromNullable(species); - } - - //------------------------------------------------------------------------// - //--- SpeciesCategory ----------------------------------------------------// - //------------------------------------------------------------------------// - - public SpeciesCategory getSpeciesCategory(Species species, - SizeCategory sizeCategory, - AgeCategory ageCategory, - SexCategory sexCategory) { - SpeciesCategory category = persistenceContext.getSpeciesCategoryDAO().findByProperties( - SpeciesCategory.PROPERTY_SPECIES, species, - SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory, - SpeciesCategory.PROPERTY_AGE_CATEGORY, ageCategory, - SpeciesCategory.PROPERTY_SEX_CATEGORY, sexCategory - ); - return category; - } - - public SpeciesCategory createSpeciesCategory(Species species, - SizeCategory sizeCategory, - AgeCategory ageCategory, - SexCategory sexCategory) { - SpeciesCategory category = persistenceContext.getSpeciesCategoryDAO().create( - SpeciesCategory.PROPERTY_SPECIES, species, - SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory, - SpeciesCategory.PROPERTY_AGE_CATEGORY, ageCategory, - SpeciesCategory.PROPERTY_SEX_CATEGORY, sexCategory - ); - return category; - } - - //------------------------------------------------------------------------// - //--- Transect -----------------------------------------------------------// - //------------------------------------------------------------------------// - - public Transect getTransect(String id) { - return persistenceContext.getTransectDAO().findByTopiaId(id); - } - - public Transect getTransectContainsOperation(Operation operation) { - return persistenceContext.getTransectDAO().findContainsOperation(operation); - } - - public Transect getTransectContainsDataAcquisition(DataAcquisition dataAcquisition) { - return persistenceContext.getTransectDAO().findContainsDataAcquisition(dataAcquisition); - } - - public Transect createTransect(Transect transect) { - Transect transectCreated = persistenceContext.getTransectDAO().create(transect); - return transectCreated; - } - - public void deleteTransect(Transect transect) { - persistenceContext.getTransectDAO().delete(transect); - } - - //------------------------------------------------------------------------// - //--- Transit ------------------------------------------------------------// - //------------------------------------------------------------------------// - - public Transit getTransit(String id) { - return persistenceContext.getTransitDAO().findByTopiaId(id); - } - - public Transit getTransitContainsTransect(Transect transect) { - return persistenceContext.getTransitDAO().findContainsTransect(transect); - } - - public Transit createTransit(Transit transit) { - Transit transitCreated = persistenceContext.getTransitDAO().create(transit); - return transitCreated; - } - - public void deleteTransit(Transit transit) { - persistenceContext.getTransitDAO().delete(transit); - } - - //------------------------------------------------------------------------// - //--- Vessel -------------------------------------------------------------// - //------------------------------------------------------------------------// - - public Vessel getVessel(String id) { - Vessel mission = persistenceContext.getVesselDAO().findByTopiaId(id); - return mission; - } - - //------------------------------------------------------------------------// - //--- Voyage -------------------------------------------------------------// - //------------------------------------------------------------------------// - - public Voyage getVoyage(String id) { - return persistenceContext.getVoyageDAO().findByTopiaId(id); - } - - public long countVoyage() { - return persistenceContext.getVoyageDAO().count(); - } - - public Voyage createVoyage(Voyage voyage) { - Voyage voyageCreated = persistenceContext.getVoyageDAO().create(voyage); - return voyageCreated; - } - - public void deleteVoyage(Voyage voyage) { - persistenceContext.getVoyageDAO().delete(voyage); - } - - //------------------------------------------------------------------------// - //--- Transversal --------------------------------------------------------// - //------------------------------------------------------------------------// - - public <E extends TopiaEntity> Map<String, String> loadSortAndDecorate(Class<E> beanType) { - - List<E> beans = persistenceContext.getDAO(beanType).findAll(); - return getDecoratorService().sortAndDecorate(getLocale(), beans, null); - } - - public <E extends TopiaEntity, K> Map<K, E> getEntitiesMap( - Class<E> entityType, - Function<E, K> function) { - List<E> allVoyages = persistenceContext.getDAO(entityType).findAll(); - Map<K, E> voyageMap = Maps.uniqueIndex( - allVoyages, function); - return voyageMap; - } - - public void executeSQL(String sqlScript) { - persistenceContext.executeSQL(sqlScript); - } - - public void clear() { - persistenceContext.clear(); - } - - public void flush() { - persistenceContext.flush(); - } - - public void commit() { - persistenceContext.commitTransaction(); - } - - public <R> R findSingleResult(TopiaSQLQuery<R> sqlQuery) { - return sqlQuery.findSingleResult(persistenceContext.getContext()); - } - - public <R> List<R> findMultipleResult(TopiaSQLQuery<R> sqlQuery) { - return sqlQuery.findMultipleResult(persistenceContext.getContext()); - } - - public boolean isPostgresql() { - return persistenceContext.isPostgresql(); - } - - public boolean isSpatialAware() { - return persistenceContext.isSpatialAware(); - } - - public boolean isIdExists(String id) { - try { - boolean result = getDAOFromId(id).existByTopiaId(id); - return result; - } catch (TopiaException e) { - throw new EchoBaseTechnicalException( - "Could not find out if id " + id + " exists.", e); - } - } - - protected <E extends TopiaEntity> TopiaDAO<E> getDAOFromId(String id) { - try { - TopiaIdFactory topiaIdFactory = persistenceContext.getTopiaIdFactory(); - Class<E> className = topiaIdFactory.getClassName(id); - return persistenceContext.getDAO(className); - } catch (TopiaNotFoundException e) { - - throw new EchoBaseTechnicalException( - "Could not find class from id: " + id, e); - } - } -} Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/embeddedapplication/EmbeddedApplicationService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/embeddedapplication/EmbeddedApplicationService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/embeddedapplication/EmbeddedApplicationService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,14 +26,16 @@ import com.google.common.base.Charsets; import com.google.common.base.Preconditions; import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaApplicationContext; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; import fr.ifremer.echobase.entities.ExportQuery; -import fr.ifremer.echobase.entities.TopiaEchoBaseInternalPersistenceContext; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; import fr.ifremer.echobase.entities.WorkingDbConfiguration; import fr.ifremer.echobase.io.EchoBaseIOUtil; import fr.ifremer.echobase.persistence.EchoBaseEntityHelper; -import fr.ifremer.echobase.persistence.EchobaseTopiaContexts; +import fr.ifremer.echobase.persistence.EchobaseTopiaApplicationContexts; import fr.ifremer.echobase.persistence.JdbcConfiguration; import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceContext; @@ -41,6 +43,7 @@ import fr.ifremer.echobase.services.service.UserService; import fr.ifremer.echobase.services.service.exportdb.ExportDbConfiguration; import fr.ifremer.echobase.services.service.exportdb.ExportDbMode; +import fr.ifremer.echobase.services.service.exportdb.ExportDbService; import fr.ifremer.echobase.services.service.exportquery.ExportQueryInvalidNameException; import fr.ifremer.echobase.services.service.exportquery.ExportQueryNameAlreadyExistException; import fr.ifremer.echobase.services.service.exportquery.ExportQueryService; @@ -53,10 +56,10 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.FileUtil; +import javax.inject.Inject; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -80,6 +83,12 @@ public static final String EMBEDDED_PATH = "/embedded/"; + @Inject + EchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext; + + @Inject + private ExportDbService exportDbService; + public File createEmbeddedApplication(EmbeddedApplicationConfiguration model) { int nbSteps = computeNbSteps(model); @@ -113,8 +122,6 @@ getLocale(), getConfiguration(), getDbMeta()); -// , -// getSpatialDataCache()); EchoBaseUser admin; try { @@ -150,18 +157,12 @@ File internalDir = new File(dir, "internaldb"); - TopiaContext newInternalRootContext = - EchobaseTopiaContexts.newInternalDb(internalDir); - - TopiaContext internalTransaction = newInternalRootContext.beginTransaction(); - TopiaEchoBaseInternalPersistenceContext newPersistenceContext = new TopiaEchoBaseInternalPersistenceContext( - internalTransaction - ); + EchoBaseInternalTopiaApplicationContext newInternalRootContext = + EchobaseTopiaApplicationContexts.newInternalDb(internalDir); + EchoBaseInternalPersistenceContext newPersistenceContext = newInternalRootContext.newPersistenceContext(); newServiceContext.setEchoBaseInternalPersistenceContext( newPersistenceContext); - TopiaEchoBaseInternalPersistenceContext internalPersistenceContext = - getEchoBaseInternalPersistenceContext(); try { // get user service from h2 db UserService userService = newServiceContext.newService(UserService.class); @@ -176,18 +177,18 @@ model.incrementsProgress(); // get all export queries from application - List<ExportQuery> queries = internalPersistenceContext.getExportQueryDAO().findAll(); + List<ExportQuery> queries = echoBaseInternalPersistenceContext.getExportQueryDao().findAll(); // replicate queries - internalPersistenceContext.replicateEntities( - internalTransaction, queries); + echoBaseInternalPersistenceContext.replicateEntities( + newPersistenceContext, queries); // create export sql service from h2 db ExportQueryService exportQueryService = newServiceContext.newService(ExportQueryService.class); // get all queries from h2 db - queries = newPersistenceContext.getExportQueryDAO().findAll(); + queries = newPersistenceContext.getExportQueryDao().findAll(); // attach them to default created admin user in the db for (ExportQuery query : queries) { @@ -199,18 +200,18 @@ // get all working db configuration from application List<WorkingDbConfiguration> confs = - internalPersistenceContext.getWorkingDbConfigurationDAO().findAll(); + echoBaseInternalPersistenceContext.getWorkingDbConfigurationDao().findAll(); // replicate configs - internalPersistenceContext.replicateEntities( - internalTransaction, confs); + echoBaseInternalPersistenceContext.replicateEntities( + newPersistenceContext, confs); model.incrementsProgress(); return admin; } finally { newServiceContext.setEchoBaseInternalPersistenceContext(null); - EchoBaseEntityHelper.releaseRootContext(newInternalRootContext); + EchoBaseEntityHelper.releaseApplicationContext(newInternalRootContext); } } @@ -221,12 +222,13 @@ EchoBaseUser admin) throws IOException, ImportException, TopiaException { JdbcConfiguration dbConf = JdbcConfiguration.newEmbeddedConfig(dir); - TopiaContext rootContext = EchobaseTopiaContexts.newWorkingDb( - dbConf); + EchoBaseUserTopiaApplicationContext applicationContext = + EchobaseTopiaApplicationContexts.newWorkingDb(dbConf); try { // inject a new transaction in service context - newServiceContext.setEchoBasePersistenceContext(new TopiaEchoBasePersistenceContext(rootContext.beginTransaction())); + newServiceContext.setEchoBaseUserPersistenceContext( + applicationContext.newPersistenceContext()); model.incrementsProgress(); @@ -246,10 +248,10 @@ } finally { // remove current transaction - newServiceContext.setEchoBasePersistenceContext(null); + newServiceContext.setEchoBaseUserPersistenceContext(null); // release any connexion to the working db - EchoBaseEntityHelper.releaseRootContext(rootContext); + EchoBaseEntityHelper.releaseApplicationContext(applicationContext); } } @@ -304,26 +306,22 @@ exportconfiguration.setComputeSteps(false); exportconfiguration.setExportDbMode(ExportDbMode.REFERENTIAL_AND_DATA); - TopiaEchoBasePersistenceContext persistenceContext = serviceContext.getEchoBasePersistenceContext(); + EchoBaseUserPersistenceContext persistenceContext = serviceContext.getEchoBaseUserPersistenceContext(); + EchoBaseUserTopiaApplicationContext applicationContext = serviceContext.getEchoBaseUserApplicationContext(); - TopiaContext newTx = persistenceContext.getContext().beginTransaction(); + EchoBaseUserPersistenceContext newPersistenceContext = applicationContext.newPersistenceContext(); - TopiaEchoBasePersistenceContext newPersistenceContext = new TopiaEchoBasePersistenceContext(newTx); - -// TopiaContext transaction = serviceContext.getTransaction(); - - try { - serviceContext.setEchoBasePersistenceContext(newPersistenceContext); - getExportDbService().doExport(exportconfiguration); + serviceContext.setEchoBaseUserPersistenceContext(newPersistenceContext); + exportDbService.doExport(exportconfiguration); } catch (IOException eee) { - newPersistenceContext.rollbackTransaction(); + newPersistenceContext.rollback(); throw eee; } catch (RuntimeException eee) { - newPersistenceContext.rollbackTransaction(); + newPersistenceContext.rollback(); throw eee; } finally { - serviceContext.setEchoBasePersistenceContext(persistenceContext); + serviceContext.setEchoBaseUserPersistenceContext(persistenceContext); newPersistenceContext.closeContext(); } File exportZipFile = exportconfiguration.getExportFile(); @@ -375,7 +373,7 @@ File outputFile = new File(targetDirectory, resourceName); if (log.isDebugEnabled()) { log.debug("Copy binary file from " + resourceName + " to " + - outputFile); + outputFile); } OutputStream outputStream = new FileOutputStream(outputFile); try { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportdb/ExportDbService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportdb/ExportDbService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportdb/ExportDbService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,27 +25,27 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.io.EchoBaseIOUtil; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; -import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceSupport; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.TopiaPersistenceHelper; -import org.nuiton.topia.persistence.csv.out.ExportEntityVisitor; -import org.nuiton.topia.persistence.csv.out.TopiaCsvExports; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.service.csv.out.ExportEntityVisitor; +import org.nuiton.topia.service.csv.out.TopiaCsvExports; import org.nuiton.util.FileUtil; import org.nuiton.util.TimeLog; +import javax.inject.Inject; import java.io.File; import java.io.IOException; import java.util.Collection; @@ -66,13 +66,11 @@ public static final TimeLog timeLog = new TimeLog(ExportDbService.class); - private WorkingDbPersistenceService persistenceService; + @Inject + private UserDbPersistenceService persistenceService; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); - } + @Inject + private ExportService exportService; public void doExport(ExportDbConfiguration model) throws IOException { @@ -93,8 +91,6 @@ ExportDbMode exportDbMode = model.getExportDbMode(); - ExportService exportService = getExportService(); - boolean exportVoyagesByVisitor = exportDbMode.isExportData(); if (exportVoyagesByVisitor) { @@ -108,8 +104,8 @@ } } - List<TableMeta<EchoBaseEntityEnum>> tablesToExport = Lists.newArrayList(); - List<AssociationMeta<EchoBaseEntityEnum>> associationsToExport = Lists.newArrayList(); + List<TableMeta<EchoBaseUserEntityEnum>> tablesToExport = Lists.newArrayList(); + List<AssociationMeta<EchoBaseUserEntityEnum>> associationsToExport = Lists.newArrayList(); EchoBaseDbMeta dbMeta = getDbMeta(); @@ -155,9 +151,9 @@ private void exportTables(ExportDbConfiguration model, File dir, - List<TableMeta<EchoBaseEntityEnum>> tablesToExport, + List<TableMeta<EchoBaseUserEntityEnum>> tablesToExport, ExportService exportService) { - for (TableMeta<EchoBaseEntityEnum> meta : tablesToExport) { + for (TableMeta<EchoBaseUserEntityEnum> meta : tablesToExport) { model.incrementsProgress(); @@ -168,9 +164,9 @@ private void exportAssociations(ExportDbConfiguration model, File dir, - List<AssociationMeta<EchoBaseEntityEnum>> associationsToExport, + List<AssociationMeta<EchoBaseUserEntityEnum>> associationsToExport, ExportService exportService) { - for (AssociationMeta<EchoBaseEntityEnum> associationMeta : associationsToExport) { + for (AssociationMeta<EchoBaseUserEntityEnum> associationMeta : associationsToExport) { model.incrementsProgress(); @@ -185,7 +181,7 @@ EchoBaseDbMeta dbMeta = getDbMeta(); - Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> contexts = + Map<EchoBaseUserEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseUserEntityEnum>> contexts = TopiaCsvExports.createReplicateEntityVisitorContexts( exportService.getModelFactory(false), dbMeta.getDataTables(), @@ -217,12 +213,12 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ - static class ReplicateEntityVisitor extends ExportEntityVisitor<EchoBaseEntityEnum> { + static class ReplicateEntityVisitor extends ExportEntityVisitor<EchoBaseUserEntityEnum> { protected final Set<String> categoryIds; - public ReplicateEntityVisitor(TopiaPersistenceHelper<EchoBaseEntityEnum> typeProvider, - Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> entityExporters) { + public ReplicateEntityVisitor(TopiaPersistenceHelper<EchoBaseUserEntityEnum> typeProvider, + Map<EchoBaseUserEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseUserEntityEnum>> entityExporters) { super(typeProvider, entityExporters); categoryIds = Sets.newHashSet(); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportdb/ExportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportdb/ExportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportdb/ExportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,26 +23,26 @@ */ package fr.ifremer.echobase.services.service.exportdb; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.services.EchoBaseServiceContext; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import fr.ifremer.echobase.services.service.DbEditorService; import fr.ifremer.echobase.services.service.DecoratorService; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.csv.ExportModel; import org.nuiton.decorator.Decorator; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.EntityCsvModel; -import org.nuiton.topia.persistence.csv.out.EntityAssociationExportModel; -import org.nuiton.topia.persistence.csv.out.ExportModelFactory; -import org.nuiton.topia.persistence.csv.out.PrepareDataForExport; -import org.nuiton.topia.persistence.csv.out.TopiaCsvExports; 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.out.EntityAssociationExportModel; +import org.nuiton.topia.service.csv.out.ExportModelFactory; +import org.nuiton.topia.service.csv.out.PrepareDataForExport; +import org.nuiton.topia.service.csv.out.TopiaCsvExports; +import javax.inject.Inject; import java.io.File; /** @@ -56,17 +56,23 @@ /** Logger. */ private static final Log log = LogFactory.getLog(ExportService.class); - private WorkingDbPersistenceService persistenceService; + @Inject + private UserDbPersistenceService persistenceService; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); + @Inject + private DbEditorService dbEditorService; - } + @Inject + private DecoratorService decoratorService; - public String exportData(TableMeta<EchoBaseEntityEnum> meta, boolean asSeen) { +// @Override +// public void setServiceContext(EchoBaseServiceContext serviceContext) { +// super.setServiceContext(serviceContext); +// persistenceService = serviceContext.newService(UserDbPersistenceService.class); +// } + public String exportData(TableMeta<EchoBaseUserEntityEnum> meta, boolean asSeen) { + if (log.isInfoEnabled()) { log.info("Export " + meta); } @@ -76,7 +82,7 @@ return result; } - public void exportData(TableMeta<EchoBaseEntityEnum> meta, File file) { + public void exportData(TableMeta<EchoBaseUserEntityEnum> meta, File file) { if (log.isInfoEnabled()) { log.info("Export " + meta + " to " + file); @@ -91,7 +97,7 @@ } - public void exportData(AssociationMeta<EchoBaseEntityEnum> meta, File file) { + public void exportData(AssociationMeta<EchoBaseUserEntityEnum> meta, File file) { if (log.isInfoEnabled()) { log.info("Export " + meta + " to " + file); @@ -104,8 +110,8 @@ persistenceService.clear(); } - public ExportModelFactory<EchoBaseEntityEnum> getModelFactory(boolean asSeen) { - ExportModelFactory<EchoBaseEntityEnum> result; + public ExportModelFactory<EchoBaseUserEntityEnum> getModelFactory(boolean asSeen) { + ExportModelFactory<EchoBaseUserEntityEnum> result; if (asSeen) { result = asSeenExportFactory; } else { @@ -114,13 +120,13 @@ return result; } - private ExportModelFactory<EchoBaseEntityEnum> defaultExportFactory = new ExportModelFactory<EchoBaseEntityEnum>() { + private ExportModelFactory<EchoBaseUserEntityEnum> defaultExportFactory = new ExportModelFactory<EchoBaseUserEntityEnum>() { @Override - public <E extends TopiaEntity> ExportModel<E> buildForExport(TableMeta<EchoBaseEntityEnum> meta) { + public <E extends TopiaEntity> ExportModel<E> buildForExport(TableMeta<EchoBaseUserEntityEnum> meta) { // normal export add topiaId column - EntityCsvModel<EchoBaseEntityEnum, E> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseUserEntityEnum, E> model = EntityCsvModel.newModel( getConfiguration().getCsvSeparator(), meta, TopiaEntity.PROPERTY_TOPIA_ID @@ -145,7 +151,7 @@ } @Override - public <E extends TopiaEntity> ExportModel<E> buildForExport(AssociationMeta<EchoBaseEntityEnum> associationMeta) { + public <E extends TopiaEntity> ExportModel<E> buildForExport(AssociationMeta<EchoBaseUserEntityEnum> associationMeta) { ExportModel<E> model = EntityAssociationExportModel.newExportModel( getConfiguration().getCsvSeparator(), associationMeta @@ -154,21 +160,18 @@ } }; - private ExportModelFactory<EchoBaseEntityEnum> asSeenExportFactory = new ExportModelFactory<EchoBaseEntityEnum>() { + private ExportModelFactory<EchoBaseUserEntityEnum> asSeenExportFactory = new ExportModelFactory<EchoBaseUserEntityEnum>() { @Override - public <E extends TopiaEntity> ExportModel<E> buildForExport(TableMeta<EchoBaseEntityEnum> meta) { + public <E extends TopiaEntity> ExportModel<E> buildForExport(TableMeta<EchoBaseUserEntityEnum> meta) { // no need to have topiaId as first column - EntityCsvModel<EchoBaseEntityEnum, E> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseUserEntityEnum, E> model = EntityCsvModel.newModel( getConfiguration().getCsvSeparator(), meta ); - - DecoratorService service = getDecoratorService(); - for (ColumnMeta columnMeta : meta) { String propertyName = columnMeta.getName(); Class<?> type = columnMeta.getType(); @@ -178,7 +181,7 @@ // export decorated foreign key value Decorator<TopiaEntity> decorator = - service.getDecorator(getLocale(), entityType, null); + decoratorService.getDecorator(getLocale(), entityType, null); model.addDecoratedForeignKeyForExport(propertyName, propertyName, decorator); } else { @@ -189,7 +192,7 @@ } @Override - public <E extends TopiaEntity> ExportModel<E> buildForExport(AssociationMeta<EchoBaseEntityEnum> associationMeta) { + public <E extends TopiaEntity> ExportModel<E> buildForExport(AssociationMeta<EchoBaseUserEntityEnum> associationMeta) { ExportModel<E> model = EntityAssociationExportModel.newExportModel( getConfiguration().getCsvSeparator(), associationMeta @@ -198,22 +201,20 @@ } }; - private PrepareDataForExport<EchoBaseEntityEnum> defaultPrepareDataForExport = new PrepareDataForExport<EchoBaseEntityEnum>() { + private PrepareDataForExport<EchoBaseUserEntityEnum> defaultPrepareDataForExport = new PrepareDataForExport<EchoBaseUserEntityEnum>() { @Override - public <E extends TopiaEntity> Iterable<E> prepareData(TableMeta<EchoBaseEntityEnum> tableMeta) { - DbEditorService service = getDbEditorService(); + public <E extends TopiaEntity> Iterable<E> prepareData(TableMeta<EchoBaseUserEntityEnum> tableMeta) { - Iterable<E> data = service.iterateOnEntities(tableMeta, null); + Iterable<E> data = dbEditorService.iterateOnEntities(tableMeta, null); return data; } @Override - public <E extends TopiaEntity> Iterable<E> prepareData(AssociationMeta<EchoBaseEntityEnum> associationMeta) { - DbEditorService service = getDbEditorService(); + public <E extends TopiaEntity> Iterable<E> prepareData(AssociationMeta<EchoBaseUserEntityEnum> associationMeta) { - TableMeta<EchoBaseEntityEnum> tableMeta = service.getTableMeta(associationMeta.getSource()); - Iterable<E> data = service.iterateOnEntities(tableMeta, "size(e." + associationMeta.getName() + ") > 0"); + TableMeta<EchoBaseUserEntityEnum> tableMeta = dbEditorService.getTableMeta(associationMeta.getSource()); + Iterable<E> data = dbEditorService.iterateOnEntities(tableMeta, "size(e." + associationMeta.getName() + ") > 0"); return data; } }; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,19 +25,22 @@ import com.google.common.base.Charsets; import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ExportQueries; import fr.ifremer.echobase.entities.ExportQuery; -import fr.ifremer.echobase.entities.ExportQueryDAO; -import fr.ifremer.echobase.services.EchoBaseServiceContext; +import fr.ifremer.echobase.entities.ExportQueryTopiaDao; import fr.ifremer.echobase.services.EchoBaseServiceSupport; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.DecoratorService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import org.apache.commons.lang3.StringUtils; import org.nuiton.csv.Export; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.pager.TopiaPagerBean; import org.nuiton.util.RecursiveProperties; +import javax.inject.Inject; import java.util.List; import java.util.Map; @@ -49,17 +52,18 @@ */ public class ExportQueryService extends EchoBaseServiceSupport { - private WorkingDbPersistenceService persistenceService; + @Inject + EchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); - } + @Inject + private UserDbPersistenceService persistenceService; + @Inject + private DecoratorService decoratorService; + public ExportQuery getExportQuery(String topiaId) throws ExportQueryNotFoundException { - ExportQuery exportQuery = getDAO().findByTopiaId(topiaId); + ExportQuery exportQuery = getDao().findByTopiaId(topiaId); if (exportQuery == null) { throw new ExportQueryNotFoundException(); @@ -89,9 +93,9 @@ boolean result; if (mustCreate) { - result = !getDAO().isQueryExists(queryName); + result = !getDao().isQueryExists(queryName); } else { - result = !getDAO().isQueryExists(id, queryName); + result = !getDao().isQueryExists(id, queryName); } return result; } @@ -100,8 +104,6 @@ EchoBaseUser user) throws ExportQueryNameAlreadyExistException, ExportQueryInvalidNameException { try { - ExportQueryDAO dao = getDAO(); - // No id, creating new one entity String id = exportQuery.getTopiaId(); @@ -126,9 +128,9 @@ exportQuery.setLastModifiedUser(user.getEmail()); if (mustCreate) { - entityToSave = dao.create(exportQuery); + entityToSave = getDao().create(exportQuery); } else { - entityToSave = dao.findByTopiaId(id); + entityToSave = getDao().findByTopiaId(id); entityToSave.setName(queryName); entityToSave.setDescription(exportQuery.getDescription()); entityToSave.setSqlQuery(exportQuery.getSqlQuery()); @@ -136,8 +138,7 @@ entityToSave.setLastModifiedUser(exportQuery.getLastModifiedUser()); } -// dao.update(entityToSave); - getEchoBaseInternalPersistenceContext().commitTransaction(); + echoBaseInternalPersistenceContext.commit(); return entityToSave; } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -146,12 +147,10 @@ public void delete(String topiaId) { try { - ExportQueryDAO dao = getDAO(); + ExportQuery entityToDelete = getDao().findByTopiaId(topiaId); + getDao().delete(entityToDelete); - ExportQuery entityToDelete = dao.findByTopiaId(topiaId); - dao.delete(entityToDelete); - - getEchoBaseInternalPersistenceContext().commitTransaction(); + echoBaseInternalPersistenceContext.commit(); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); } @@ -165,9 +164,15 @@ return result; } + public <E extends TopiaEntity> Map<String, String> loadSortAndDecorate(Class<E> beanType) { + + List<E> beans = echoBaseInternalPersistenceContext.getDao(beanType).findAll(); + return decoratorService.sortAndDecorate(getLocale(), beans, null); + } + protected String getSafeSql(String sql) { RecursiveProperties sqls = new RecursiveProperties(); - List<ExportQuery> queries = getEchoBaseInternalPersistenceContext().getExportQueryDAO().findAll(); + List<ExportQuery> queries = echoBaseInternalPersistenceContext.getExportQueryDao().findAll(); for (ExportQuery query : queries) { sqls.put(query.getName(), query.getSqlQuery()); } @@ -253,7 +258,7 @@ public ExportQuery newExportQuery() { try { - return getDAO().newInstance(); + return getDao().newInstance(); } catch (TopiaException e) { throw new EchoBaseTechnicalException(e); } @@ -265,7 +270,7 @@ return result; } - protected ExportQueryDAO getDAO() { - return getEchoBaseInternalPersistenceContext().getExportQueryDAO(); + protected ExportQueryTopiaDao getDao() { + return echoBaseInternalPersistenceContext.getExportQueryDao(); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/GenericSQLQuery.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/GenericSQLQuery.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/exportquery/GenericSQLQuery.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,9 +25,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaSQLQuery; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.support.TopiaSqlQuery; +import org.nuiton.topia.persistence.support.TopiaSqlSupport; import org.nuiton.util.PagerBean; import org.nuiton.util.PagerBeanUtil; @@ -44,7 +44,7 @@ * @author tchemit <chemit@codelutin.com> * @since 1.0 */ -public class GenericSQLQuery extends TopiaSQLQuery<Map<String, Object>> { +public class GenericSQLQuery extends TopiaSqlQuery<Map<String, Object>> { /** Logger. */ private static final Log log = LogFactory.getLog(GenericSQLQuery.class); @@ -72,23 +72,23 @@ return model; } - public List<Map<String, Object>> getResult(TopiaContext tx) throws TopiaException { + public List<Map<String, Object>> getResult(TopiaSqlSupport tx) throws TopiaException { List<Map<String, Object>> rows = - findMultipleResult(tx); + tx.findMultipleResult(this); return rows; } - public void testQuery(TopiaContext tx) throws TopiaException { - findSingleResult(tx); + public void testQuery(TopiaSqlSupport tx) throws TopiaException { + tx.findSingleResult(this); } - public String[] getColumnNames(TopiaContext tx) throws TopiaException { - findSingleResult(tx); + public String[] getColumnNames(TopiaSqlSupport tx) throws TopiaException { + tx.findSingleResult(this); return columnNames; } @Override - protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + public PreparedStatement prepareQuery(Connection connection) throws SQLException { return connection.prepareStatement( sql, ResultSet.TYPE_SCROLL_INSENSITIVE, @@ -97,7 +97,7 @@ } @Override - protected void afterExecuteQuery(ResultSet set) throws SQLException { + public void afterExecuteQuery(ResultSet set) throws SQLException { super.afterExecuteQuery(set); // obtain columnNames @@ -140,7 +140,7 @@ } @Override - protected Map<String, Object> prepareResult(ResultSet set) throws SQLException { + public Map<String, Object> prepareResult(ResultSet set) throws SQLException { if (pager != null) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AbstractImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AbstractImportConfiguration.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AbstractImportConfiguration.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,7 +24,7 @@ package fr.ifremer.echobase.services.service.importdata; import com.google.common.collect.Lists; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.io.EchoBaseIOUtil; import fr.ifremer.echobase.io.InputFile; @@ -121,7 +121,7 @@ } public void addResult(EchoBaseCsvFileImportResult fileResult) { - Set<EchoBaseEntityEnum> entityTypes = fileResult.getEntityTypes(); + Set<EchoBaseUserEntityEnum> entityTypes = fileResult.getEntityTypes(); if (!entityTypes.isEmpty()) { importResults.add(fileResult); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,8 +28,8 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; @@ -44,15 +44,17 @@ import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.entities.references.SpeciesCategory; import fr.ifremer.echobase.io.InputFile; -import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceSupport; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.DecoratorService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; +import fr.ifremer.echobase.services.service.spatial.SpatialService; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.csv.ImportRuntimeException; import org.nuiton.util.TimeLog; +import javax.inject.Inject; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -86,13 +88,11 @@ public static final TimeLog TIME_LOG = new TimeLog(AbstractImportDataService.class); - protected WorkingDbPersistenceService persistenceService; + @Inject + protected UserDbPersistenceService persistenceService; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); - } + @Inject + private SpatialService spatialService; public final String doImport(M configuration, EchoBaseUser user) throws ImportException { @@ -119,7 +119,7 @@ persistenceService.commit(); // update sql spatial data - getSpatialService().updatePostgisTable(); + spatialService.updatePostgisTable(); s0 = TIME_LOG.log(s0, "postgis update"); @@ -155,7 +155,7 @@ StringBuilder description = new StringBuilder(); description.append("Depuis Fichier ").append(importResult.getImportFileName()); - for (EchoBaseEntityEnum entityType : importResult.getEntityTypes()) { + for (EchoBaseUserEntityEnum entityType : importResult.getEntityTypes()) { int numberCreated = importResult.getNumberCreated(entityType); int numberUpdated = importResult.getNumberUpdated(entityType); description.append("\n\tEntité ").append(entityType); @@ -291,7 +291,7 @@ ageCategory, sexCategory ); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.SpeciesCategory); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.SpeciesCategory); } speciesCategories.put(key, category); @@ -349,7 +349,7 @@ echotype, speciesCategory ); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Category); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.Category); } categories.put(key, category); @@ -401,7 +401,7 @@ cell.addData(data); cell.setDataQuality(dataQuality); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Data); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.Data); } protected void addResults(EchoBaseCsvUtil.ResultAble row, @@ -424,10 +424,10 @@ if (collecIds) { // collect ids - importResult.addId(EchoBaseEntityEnum.Result, resultCreated); + importResult.addId(EchoBaseUserEntityEnum.Result, resultCreated); } else { - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.Result); } } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AcousticImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AcousticImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AcousticImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,14 +23,13 @@ */ package fr.ifremer.echobase.services.service.importdata; -import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBasePredicates; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.DataAcquisition; import fr.ifremer.echobase.entities.data.DataProcessing; @@ -90,11 +89,9 @@ CellType esduCellType = persistenceService.getCellTypeById( CellTypeImpl.ESDU); - Preconditions.checkNotNull(esduCellType); CellType elementaryCellType = persistenceService.getCellTypeById( CellTypeImpl.ELEMENTARY); - Preconditions.checkNotNull(elementaryCellType); EchoBaseCsvFileImportResult importResult = importMoviesFile(configuration, @@ -272,7 +269,7 @@ row); // collect id of the import - importResult.addId(EchoBaseEntityEnum.DataAcquisition, + importResult.addId(EchoBaseUserEntityEnum.DataAcquisition, dataAcquisition); createdDataAcquisitions.add( dataAcquisition.getTopiaId()); @@ -284,7 +281,7 @@ log.debug("[row " + rowNumber + "] New dataAquisition to use (number: " + importResult.getNumberCreated( - EchoBaseEntityEnum.DataAcquisition) + ")"); + EchoBaseUserEntityEnum.DataAcquisition) + ")"); } // create data processing @@ -302,7 +299,7 @@ } importResult.incrementsNumberCreated( - EchoBaseEntityEnum.DataProcessing); + EchoBaseUserEntityEnum.DataProcessing); // add it to data acquisition dataAcquisition.addDataProcessing(dataProcessing); @@ -353,10 +350,10 @@ if (collectCellIds) { // collect ids (dataProcessing already exists) - importResult.addId(EchoBaseEntityEnum.Cell, esduCell); + importResult.addId(EchoBaseUserEntityEnum.Cell, esduCell); } else { - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Cell); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.Cell); } // add it to data processing @@ -392,7 +389,7 @@ // keep (to attach them to esdu cell) elementaryCells.add(elementaryCell); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Cell); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.Cell); // create datas of the elementary cell createElementaryCellData(suffix, Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CatchesImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CatchesImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CatchesImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,8 +28,8 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBasePredicates; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.data.SampleData; @@ -167,18 +167,12 @@ ); SampleType sampleTypeTotal = persistenceService.getSampleTypeByName(SampleTypeImpl.TOTAL_SAMPLE_TYPE); - Preconditions.checkNotNull(sampleTypeTotal); SampleType sampleTypeUnsorted = persistenceService.getSampleTypeByName(SampleTypeImpl.UNSORTED_SAMPLE_TYPE); - Preconditions.checkNotNull(sampleTypeUnsorted); SampleType sampleTypeSorted = persistenceService.getSampleTypeByName(SampleTypeImpl.SORTED_SAMPLE_TYPE); - Preconditions.checkNotNull(sampleTypeSorted); SampleDataType sampleDataTypeMeanLength = persistenceService.getSampleDataTypeByName(SampleDataTypeImpl.MEAN_LENGTHCM); - Preconditions.checkNotNull(sampleDataTypeMeanLength); SampleDataType sampleDataTypeMeanWeight = persistenceService.getSampleDataTypeByName(SampleDataTypeImpl.MEAN_WEIGHTG); - Preconditions.checkNotNull(sampleDataTypeMeanWeight); SampleDataType sampleDataTypeNoPerKg = persistenceService.getSampleDataTypeByName(SampleDataTypeImpl.NO_PER_KG); - Preconditions.checkNotNull(sampleDataTypeNoPerKg); Reader reader = getInputFileReader(inputFile); Locale locale = getLocale(); @@ -316,16 +310,11 @@ sexCategoryMap); SampleType sampleTypeSubsample = persistenceService.getSampleTypeByName(SampleTypeImpl.SUB_SAMPLE_TYPE); - Preconditions.checkNotNull(sampleTypeSubsample); SampleDataType sampleDataTypeNumberAtLength = persistenceService.getSampleDataTypeByName(SampleDataTypeImpl.NUMBER_AT_LENGTH); - Preconditions.checkNotNull(sampleDataTypeNumberAtLength); SampleDataType sampleDataTypeNumberAtLength05cm = persistenceService.getSampleDataTypeByName(SampleDataTypeImpl.LTCM0_5); - Preconditions.checkNotNull(sampleDataTypeNumberAtLength05cm); SampleDataType sampleDataTypeNumberAtLength1cm = persistenceService.getSampleDataTypeByName(SampleDataTypeImpl.L_TCM_1); - Preconditions.checkNotNull(sampleDataTypeNumberAtLength1cm); SampleDataType sampleDataTypeWeightAtLength = persistenceService.getSampleDataTypeByName(SampleDataTypeImpl.WEIGHT_AT_LENGTHKG); - Preconditions.checkNotNull(sampleDataTypeWeightAtLength); Reader reader = getInputFileReader(inputFile); try { @@ -446,7 +435,6 @@ SampleType sampleTypeIndividual = persistenceService.getSampleTypeByName(SampleTypeImpl.INDIVIDUAL_SAMPLE_TYPE); - Preconditions.checkNotNull(sampleTypeIndividual); Map<String, Sample> samples = Maps.newTreeMap(); @@ -505,7 +493,7 @@ SampleData sampleDataCreated = persistenceService.createSampleData(sampleData); sample.addSampleData(sampleDataCreated); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.SampleData); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.SampleData); } return importResult; @@ -525,7 +513,7 @@ operation.addSample(result); // collect ids - importResult.addId(EchoBaseEntityEnum.Sample, sample); + importResult.addId(EchoBaseUserEntityEnum.Sample, sample); return result; } @@ -540,7 +528,7 @@ value); sample.addSampleData(sampleData); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.SampleData); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.SampleData); return sampleData; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonAllImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonAllImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonAllImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,6 +27,7 @@ import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.references.Vessel; +import javax.inject.Inject; import java.util.Map; /** @@ -37,6 +38,15 @@ */ public class CommonAllImportService extends AbstractImportDataService<CommonImportConfiguration> { + @Inject + CommonVoyageImportService commonVoyageImportService; + + @Inject + CommonTransitImportService commonTransitImportService; + + @Inject + CommonTransectImportService commonTransectImportService; + @Override protected void startImport(CommonImportConfiguration configuration, EchoBaseUser user) throws ImportException { @@ -47,13 +57,13 @@ EchoBaseCsvFileImportResult importResult; - importResult = newService(CommonVoyageImportService.class).importFile(configuration); + importResult = commonVoyageImportService.importFile(configuration); configuration.addResult(importResult); - importResult = newService(CommonTransitImportService.class).importFile(configuration, false); + importResult = commonTransitImportService.importFile(configuration, false); configuration.addResult(importResult); - importResult = newService(CommonTransectImportService.class).importFile(vesselMap, configuration, false); + importResult = commonTransectImportService.importFile(vesselMap, configuration, false); configuration.addResult(importResult); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,8 +28,10 @@ import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.references.Mission; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; +import javax.inject.Inject; + /** * Service to launch a "common data" import. * @@ -38,6 +40,18 @@ */ public class CommonImportService extends AbstractImportDataService<CommonImportConfiguration> { + @Inject + CommonAllImportService commonAllImportService; + + @Inject + CommonVoyageImportService commonVoyageImportService; + + @Inject + CommonTransitImportService commonTransitImportService; + + @Inject + CommonTransectImportService commonTransectImportService; + @Override public void startImport(CommonImportConfiguration configuration, EchoBaseUser user) throws ImportException { @@ -49,19 +63,19 @@ switch (importMode) { case COMMON_ALL: - service = newService(CommonAllImportService.class); + service = commonAllImportService; break; case COMMON_VOYAGE: - service = newService(CommonVoyageImportService.class); + service = commonVoyageImportService; break; case COMMON_TRANSIT: - service = newService(CommonTransitImportService.class); + service = commonTransitImportService; break; case COMMON_TRANSECT: - service = newService(CommonTransectImportService.class); + service = commonTransectImportService; break; default: Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonTransectImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonTransectImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonTransectImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,8 +25,8 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; @@ -141,11 +141,11 @@ if (collectIds) { // collect id of the import - importResult.addId(EchoBaseEntityEnum.Transect, + importResult.addId(EchoBaseUserEntityEnum.Transect, createdTransect); } else { - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Transect); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.Transect); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonTransitImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonTransitImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonTransitImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,8 +25,8 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.io.InputFile; @@ -108,11 +108,11 @@ if (collectIds) { // collect id of the import - importResult.addId(EchoBaseEntityEnum.Transit, + importResult.addId(EchoBaseUserEntityEnum.Transit, createdTransit); } else { - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Transit); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.Transit); } } return importResult; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonVoyageImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonVoyageImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/CommonVoyageImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,8 +23,8 @@ * #L% */ -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.AreaOfOperation; import fr.ifremer.echobase.entities.references.Mission; @@ -114,7 +114,7 @@ } // collect id of the import - result.addId(EchoBaseEntityEnum.Voyage, voyage); + result.addId(EchoBaseUserEntityEnum.Voyage, voyage); } if (newVoyage == null) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/EchoBaseCsvFileImportResult.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/EchoBaseCsvFileImportResult.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/EchoBaseCsvFileImportResult.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,10 +24,10 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.ImportLog; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.in.CsvFileImportResult; +import org.nuiton.topia.service.csv.in.CsvFileImportResult; import java.util.List; @@ -38,18 +38,18 @@ * @author tchemit <chemit@codelutin.com> * @since 1.2 */ -public class EchoBaseCsvFileImportResult extends CsvFileImportResult<EchoBaseEntityEnum> { +public class EchoBaseCsvFileImportResult extends CsvFileImportResult<EchoBaseUserEntityEnum> { private static final long serialVersionUID = 1L; protected final List<String> ids; public EchoBaseCsvFileImportResult(String importFileName) { - super(importFileName, EchoBaseEntityEnum.values()); + super(importFileName, EchoBaseUserEntityEnum.values()); ids = Lists.newArrayList(); } - public <E extends TopiaEntity> void addId(EchoBaseEntityEnum entityEnum, E... entities) { + public <E extends TopiaEntity> void addId(EchoBaseUserEntityEnum entityEnum, E... entities) { for (E entity : entities) { this.ids.add(entity.getTopiaId()); incrementsNumberCreated(entityEnum); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/OperationImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/OperationImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/OperationImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,8 +25,8 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.GearMetadataValue; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.OperationMetadataValue; @@ -160,7 +160,7 @@ Operation createdOperation = persistenceService.createOperation(operation); // collect ids - importResult.addId(EchoBaseEntityEnum.Operation, + importResult.addId(EchoBaseUserEntityEnum.Operation, createdOperation); transect.addOperation(createdOperation); @@ -190,7 +190,7 @@ Map<String, OperationMetadata> operationMetadatasByName = persistenceService.getEntitiesMap(OperationMetadata.class, - EchoBaseFunctions.OPERATION_METADATA_NAME); + EchoBaseFunctions.OPERATION_METADATA_NAME); OperationMetadataValueImportModel csvModel = new OperationMetadataValueImportModel(getCsvSeparator(), @@ -216,7 +216,7 @@ operationMetadataValueToCreate); operation.addOperationMetadataValue(operationMetadataValue); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.OperationMetadataValue); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.OperationMetadataValue); } return importResult; } catch (ImportRuntimeException e) { @@ -243,7 +243,7 @@ Map<String, GearMetadata> gearMetadatasByType = persistenceService.getEntitiesMap(GearMetadata.class, - EchoBaseFunctions.GEAR_METADATA_NAME); + EchoBaseFunctions.GEAR_METADATA_NAME); GearMetadataValueImportModel csvModel = new GearMetadataValueImportModel(getCsvSeparator(), @@ -270,7 +270,7 @@ gearMetadataValuetoCreate); operation.addGearMetadataValue(gearMetadataValue); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.GearMetadataValue); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.GearMetadataValue); } return importResult; } catch (ImportRuntimeException e) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsEsduCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsEsduCellImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsEsduCellImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,8 +25,8 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.DataProcessing; @@ -379,7 +379,7 @@ row.getSizeCategoryMeaning() ); importResult.incrementsNumberCreated( - EchoBaseEntityEnum.SizeCategory); + EchoBaseUserEntityEnum.SizeCategory); if (log.isInfoEnabled()) { log.info("Creates a new SizeCategory " + sizeCategoryName); } @@ -469,7 +469,7 @@ row.getAgeCategoryMeaning() ); importResult.incrementsNumberCreated( - EchoBaseEntityEnum.AgeCategory); + EchoBaseUserEntityEnum.AgeCategory); if (log.isInfoEnabled()) { log.info("Creates a new AgeCategory " + ageCategoryName); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -35,6 +35,7 @@ import fr.ifremer.echobase.services.service.DecoratorService; import org.nuiton.decorator.Decorator; +import javax.inject.Inject; import java.util.Map; /** @@ -45,6 +46,9 @@ */ public class ResultsImportService extends AbstractImportDataService<ResultsImportConfiguration> { + @Inject + private DecoratorService decoratorService; + @Override public void startImport(ResultsImportConfiguration configuration, EchoBaseUser user) throws ImportException { @@ -89,13 +93,11 @@ Map<String, String> result = Maps.newLinkedHashMap(); - DecoratorService service = getDecoratorService(); + Decorator<Transit> transitDecorator = decoratorService.getDecorator(getLocale(), Transit.class, null); + Decorator<Transect> transectDecorator = decoratorService.getDecorator(getLocale(), Transect.class, null); + Decorator<DataAcquisition> dataAcquisitionDecorator = decoratorService.getDecorator(getLocale(), DataAcquisition.class, null); + Decorator<DataProcessing> dataProcessingDecorator = decoratorService.getDecorator(getLocale(), DataProcessing.class, null); - Decorator<Transit> transitDecorator = service.getDecorator(getLocale(), Transit.class, null); - Decorator<Transect> transectDecorator = service.getDecorator(getLocale(), Transect.class, null); - Decorator<DataAcquisition> dataAcquisitionDecorator = service.getDecorator(getLocale(), DataAcquisition.class, null); - Decorator<DataProcessing> dataProcessingDecorator = service.getDecorator(getLocale(), DataProcessing.class, null); - if (!voyage.isTransitEmpty()) { for (Transit transit : voyage.getTransit()) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsMapFishCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsMapFishCellImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsMapFishCellImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,11 +23,10 @@ */ package fr.ifremer.echobase.services.service.importdata; -import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Voyage; @@ -93,25 +92,18 @@ String resultLabel = configuration.getResultLabel(); CellType cellType = persistenceService.getCellTypeById(CellTypeImpl.MAP); - Preconditions.checkNotNull(cellType); DataMetadata dataLongitudeMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_CELL_LONGITUDE); - Preconditions.checkNotNull(dataLongitudeMeta); DataMetadata dataLatitudeMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_CELL_LATITUDE); - Preconditions.checkNotNull(dataLatitudeMeta); DataMetadata dataDepthMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_CELL_DEPTH); - Preconditions.checkNotNull(dataDepthMeta); DataMetadata dataLongitudeLagMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_LONGITUDE_LAG); - Preconditions.checkNotNull(dataLongitudeLagMeta); DataMetadata dataLatitudeLagMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_LATITUDE_LAG); - Preconditions.checkNotNull(dataLatitudeLagMeta); DataMetadata dataDepthLagMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_DEPTH_LAG); - Preconditions.checkNotNull(dataDepthLagMeta); // authorize only the selected voyage to be imported Map<String, Voyage> voyageMap = Maps.uniqueIndex(Arrays.asList( @@ -171,7 +163,7 @@ voyage.addPostCell(cell); // collect ids - importResult.addId(EchoBaseEntityEnum.Cell, cell); + importResult.addId(EchoBaseUserEntityEnum.Cell, cell); DataQuality dataQuality = row.getDataQuality(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsMapOtherCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsMapOtherCellImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsMapOtherCellImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,11 +23,10 @@ * #L% */ -import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.CellType; @@ -88,25 +87,18 @@ String resultLabel = configuration.getResultLabel(); CellType cellType = persistenceService.getCellTypeById(CellTypeImpl.MAP); - Preconditions.checkNotNull(cellType); DataMetadata dataLongitudeMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_CELL_LONGITUDE); - Preconditions.checkNotNull(dataLongitudeMeta); DataMetadata dataLatitudeMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_CELL_LATITUDE); - Preconditions.checkNotNull(dataLatitudeMeta); DataMetadata dataDepthMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_CELL_DEPTH); - Preconditions.checkNotNull(dataDepthMeta); DataMetadata dataLongitudeLagMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_LONGITUDE_LAG); - Preconditions.checkNotNull(dataLongitudeLagMeta); DataMetadata dataLatitudeLagMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_LATITUDE_LAG); - Preconditions.checkNotNull(dataLatitudeLagMeta); DataMetadata dataDepthLagMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.GRID_DEPTH_LAG); - Preconditions.checkNotNull(dataDepthLagMeta); // authorize only the selected voyage to be imported Map<String, Voyage> voyageMap = Maps.uniqueIndex(Arrays.asList( @@ -152,7 +144,7 @@ voyage.addPostCell(cell); // collect ids - importResult.addId(EchoBaseEntityEnum.Cell, cell); + importResult.addId(EchoBaseUserEntityEnum.Cell, cell); DataQuality dataQuality = row.getDataQuality(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsRegionCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsRegionCellImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsRegionCellImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,11 +23,10 @@ */ package fr.ifremer.echobase.services.service.importdata; -import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; @@ -100,16 +99,12 @@ InputFile inputFile = configuration.getRegionsFile(); CellType cellSurfaceType = persistenceService.getCellTypeById(CellTypeImpl.REGION_SURF); - Preconditions.checkNotNull(cellSurfaceType); CellType cellBottomType = persistenceService.getCellTypeById(CellTypeImpl.REGION_CLAS); - Preconditions.checkNotNull(cellBottomType); DataMetadata dataCoordinateMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.REGION_ENV_COORDINATES); - Preconditions.checkNotNull(dataCoordinateMeta); DataMetadata dataSurfaceMeta = persistenceService.getDataMetadataByName(DataMetadataImpl.SURFACE); - Preconditions.checkNotNull(dataSurfaceMeta); // authorize only the selected voyage to be imported Map<String, Voyage> voyageMap = Maps.uniqueIndex(Arrays.asList( @@ -152,7 +147,7 @@ voyage.addPostCell(cell); // collect ids - importResult.addId(EchoBaseEntityEnum.Cell, cell); + importResult.addId(EchoBaseUserEntityEnum.Cell, cell); // add surface data createCellData(cell, @@ -218,7 +213,7 @@ Cell regionCell = row.getRegionCell(); Cell esduCell = row.getEsduCell(); regionCell.addChilds(esduCell); - importResult.incrementsNumberUpdated(EchoBaseEntityEnum.Cell); + importResult.incrementsNumberUpdated(EchoBaseUserEntityEnum.Cell); } return importResult; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsVoyageImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsVoyageImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ResultsVoyageImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,8 +28,8 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBasePredicates; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.LengthAgeKey; import fr.ifremer.echobase.entities.data.LengthWeightKey; @@ -190,7 +190,7 @@ voyage.addLengthWeightKey(lengthWeightKey); // collect ids - importResult.addId(EchoBaseEntityEnum.LengthWeightKey, + importResult.addId(EchoBaseUserEntityEnum.LengthWeightKey, lengthWeightKey); } @@ -243,7 +243,7 @@ voyage.addLengthAgeKey(lengthAgeKey); // collect ids - importResult.addId(EchoBaseEntityEnum.LengthAgeKey, + importResult.addId(EchoBaseUserEntityEnum.LengthAgeKey, lengthAgeKey); } return importResult; @@ -317,7 +317,7 @@ voyage.addEchotype(echotype); // collect ids - importResult.addId(EchoBaseEntityEnum.Echotype, echotype); + importResult.addId(EchoBaseUserEntityEnum.Echotype, echotype); } else { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,7 +30,7 @@ import fr.ifremer.echobase.entities.data.DataProcessing; import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.DataQuality; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/BiometrySampleImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/BiometrySampleImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/BiometrySampleImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,7 +29,7 @@ import fr.ifremer.echobase.entities.data.SampleData; import fr.ifremer.echobase.entities.references.SampleDataType; import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EchotypeImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EchotypeImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EchotypeImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,7 +28,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeAndSpeciesCategoryImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -32,7 +32,7 @@ import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultByEchotypeImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,7 +30,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataQuality; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndAgeCategoryImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,7 +30,7 @@ import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/EsduResultBySpeciesAndSizeCategoryImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,7 +30,7 @@ import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/GearMetadataValueImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/GearMetadataValueImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/GearMetadataValueImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,7 +29,7 @@ import fr.ifremer.echobase.entities.references.Gear; import fr.ifremer.echobase.entities.references.GearMetadata; import fr.ifremer.echobase.entities.references.Vessel; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/LengthAgeKeyImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/LengthAgeKeyImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/LengthAgeKeyImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,7 +28,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.entities.references.Strata; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/LengthWeightKeyImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/LengthWeightKeyImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/LengthWeightKeyImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,7 +29,7 @@ import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.entities.references.Strata; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MapCellImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MapCellImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MapCellImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -31,7 +31,7 @@ import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/OperationImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/OperationImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/OperationImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,7 +28,7 @@ import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Gear; import fr.ifremer.echobase.entities.references.Vessel; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/OperationMetadataValueImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/OperationMetadataValueImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/OperationMetadataValueImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,7 +28,7 @@ import fr.ifremer.echobase.entities.data.OperationMetadataValue; import fr.ifremer.echobase.entities.references.OperationMetadata; import fr.ifremer.echobase.entities.references.Vessel; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellAssociationImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellAssociationImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellAssociationImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Voyage; import org.nuiton.csv.ValueParser; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,7 +27,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.DataQuality; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellResultImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellResultImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/RegionCellResultImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -31,7 +31,7 @@ import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.List; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/SubSampleImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/SubSampleImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/SubSampleImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,7 +30,7 @@ import fr.ifremer.echobase.entities.references.SexCategory; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TotalSampleImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TotalSampleImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TotalSampleImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,7 +28,7 @@ import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TransectImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TransectImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TransectImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,7 +27,7 @@ import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Vessel; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TransitImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TransitImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/TransitImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import java.util.Map; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageImportModel.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageImportModel.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.data.VoyageImpl; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.service.csv.in.AbstractImportModel; /** * Model to import Voyages. Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/EchoBaseImportModelFactory.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/EchoBaseImportModelFactory.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/EchoBaseImportModelFactory.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,17 +23,17 @@ * #L% */ -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.services.EchoBaseServiceSupport; import fr.ifremer.echobase.services.service.DbEditorService; -import fr.ifremer.echobase.services.EchoBaseServiceSupport; +import org.nuiton.csv.ImportModel; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.EntityCsvModel; -import org.nuiton.topia.persistence.csv.in.EntityAssociationImportModel; -import org.nuiton.topia.persistence.csv.in.ImportModelFactory; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.ColumnMeta; import org.nuiton.topia.persistence.metadata.TableMeta; -import org.nuiton.csv.ImportModel; +import org.nuiton.topia.service.csv.EntityCsvModel; +import org.nuiton.topia.service.csv.in.EntityAssociationImportModel; +import org.nuiton.topia.service.csv.in.ImportModelFactory; import java.util.Collection; import java.util.Map; @@ -44,11 +44,11 @@ * @author tchemit <chemit@codelutin.com> * @since 1.2 */ -public class EchoBaseImportModelFactory implements ImportModelFactory<EchoBaseEntityEnum> { +public class EchoBaseImportModelFactory implements ImportModelFactory<EchoBaseUserEntityEnum> { - public static ImportModelFactory<EchoBaseEntityEnum> newFactory(EchoBaseServiceSupport service) { + public static ImportModelFactory<EchoBaseUserEntityEnum> newFactory(DbEditorService service) { return new EchoBaseImportModelFactory( - service.getDbEditorService(), + service, service.getConfiguration().getCsvSeparator() ); } @@ -65,9 +65,9 @@ @Override - public <E extends TopiaEntity> ImportModel<E> buildForImport(TableMeta<EchoBaseEntityEnum> meta) { + public <E extends TopiaEntity> ImportModel<E> buildForImport(TableMeta<EchoBaseUserEntityEnum> meta) { - EntityCsvModel<EchoBaseEntityEnum, E> model = EntityCsvModel.newModel( + EntityCsvModel<EchoBaseUserEntityEnum, E> model = EntityCsvModel.newModel( csvSeparator, meta, TopiaEntity.PROPERTY_TOPIA_ID @@ -89,7 +89,7 @@ } @Override - public ImportModel<Map<String, Object>> buildForImport(AssociationMeta<EchoBaseEntityEnum> meta) { + public ImportModel<Map<String, Object>> buildForImport(AssociationMeta<EchoBaseUserEntityEnum> meta) { ImportModel<Map<String, Object>> model = EntityAssociationImportModel.newImportModel( @@ -100,12 +100,12 @@ } @Override - public boolean isNMAssociationMeta(AssociationMeta<EchoBaseEntityEnum> meta) { - EchoBaseEntityEnum source = meta.getSource(); - EchoBaseEntityEnum target = meta.getTarget(); + public boolean isNMAssociationMeta(AssociationMeta<EchoBaseUserEntityEnum> meta) { + EchoBaseUserEntityEnum source = meta.getSource(); + EchoBaseUserEntityEnum target = meta.getTarget(); boolean result = false; - if (source == EchoBaseEntityEnum.Echotype && target == EchoBaseEntityEnum.Species || - source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Strata) { + if (source == EchoBaseUserEntityEnum.Echotype && target == EchoBaseUserEntityEnum.Species || + source == EchoBaseUserEntityEnum.Voyage && target == EchoBaseUserEntityEnum.Strata) { result = true; } return result; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportDbService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportDbService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportDbService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,8 +30,10 @@ import fr.ifremer.echobase.services.service.importdb.strategy.AbstractImportDbStrategy; import fr.ifremer.echobase.services.service.importdb.strategy.FreeImportDbStrategy; import fr.ifremer.echobase.services.service.importdb.strategy.ReferentialImportDbStrategy; -import org.nuiton.topia.TopiaException; +import fr.ifremer.echobase.services.service.spatial.SpatialService; +import org.nuiton.topia.persistence.TopiaException; +import javax.inject.Inject; import java.io.IOException; /** @@ -42,6 +44,9 @@ */ public class ImportDbService extends EchoBaseServiceSupport { + @Inject + private SpatialService spatialService; + public void doImport(ImportDbConfiguration model, EchoBaseUser user) throws ImportException { @@ -70,10 +75,10 @@ } if (ImportDbMode.REFERENTIAL != importDbMode && - getSpatialService().isSpatialAware()) { + spatialService.isSpatialAware()) { // let's update postgis table - getSpatialService().updatePostgisTable(); + spatialService.updatePostgisTable(); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/ImportService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,22 +26,22 @@ import com.google.common.base.Charsets; import com.google.common.io.Files; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.services.EchoBaseServiceContext; -import fr.ifremer.echobase.services.service.DbEditorService; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.services.EchoBaseServiceSupport; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.DbEditorService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.csv.Import; import org.nuiton.csv.ImportModel; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.csv.in.CsvImportResult; -import org.nuiton.topia.persistence.csv.in.ImportModelFactory; import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.service.csv.in.CsvImportResult; +import org.nuiton.topia.service.csv.in.ImportModelFactory; +import javax.inject.Inject; import java.io.BufferedReader; import java.io.File; import java.io.IOException; @@ -57,30 +57,26 @@ /** Logger. */ private static final Log log = LogFactory.getLog(ImportService.class); - private WorkingDbPersistenceService persistenceService; + @Inject + private UserDbPersistenceService persistenceService; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); - } + @Inject + private DbEditorService dbEditorService; - public CsvImportResult<EchoBaseEntityEnum> importDatas(EchoBaseEntityEnum entityType, - String importFileName, - File importFile, - boolean createIfNotFound, - EchoBaseUser user) throws IOException { + public CsvImportResult<EchoBaseUserEntityEnum> importDatas(EchoBaseUserEntityEnum entityType, + String importFileName, + File importFile, + boolean createIfNotFound, + EchoBaseUser user) throws IOException { - ImportModelFactory<EchoBaseEntityEnum> importModelFactory = - EchoBaseImportModelFactory.newFactory(this); + ImportModelFactory<EchoBaseUserEntityEnum> importModelFactory = + EchoBaseImportModelFactory.newFactory(dbEditorService); - DbEditorService service = getDbEditorService(); - - TableMeta<EchoBaseEntityEnum> meta = service.getTableMeta(entityType); + TableMeta<EchoBaseUserEntityEnum> meta = dbEditorService.getTableMeta(entityType); ImportModel<TopiaEntity> csvModel = importModelFactory.buildForImport(meta); String messagePrefix = "Import du fichier " + importFileName + " le " + newDate(); - CsvImportResult<EchoBaseEntityEnum> result = CsvImportResult.newResult( + CsvImportResult<EchoBaseUserEntityEnum> result = CsvImportResult.newResult( entityType, importFileName, createIfNotFound); BufferedReader bf = Files.newReader(importFile, Charsets.UTF_8); @@ -90,11 +86,11 @@ try { for (TopiaEntity entity : importer) { - boolean create = service.saveEntity(meta, - messagePrefix, - entity, - user, - createIfNotFound + boolean create = dbEditorService.saveEntity(meta, + messagePrefix, + entity, + user, + createIfNotFound ); if (create) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/AbstractImportDbStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,29 +25,30 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.io.EchoBaseIOUtil; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; -import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceSupport; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.DbEditorService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.importdata.ImportException; import fr.ifremer.echobase.services.service.importdb.EchoBaseImportModelFactory; import fr.ifremer.echobase.services.service.importdb.ImportDbConfiguration; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.csv.in.CsvImportResult; -import org.nuiton.topia.persistence.csv.in.ImportStrategy; -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.topia.service.csv.in.CsvImportResult; +import org.nuiton.topia.service.csv.in.ImportStrategy; +import org.nuiton.topia.service.csv.in.TopiaCsvImports; import org.nuiton.util.TimeLog; +import javax.inject.Inject; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; @@ -72,17 +73,22 @@ public static final TimeLog TIME_LOG = new TimeLog(AbstractImportDbStrategy.class); - protected WorkingDbPersistenceService persistenceService; + @Inject + protected UserDbPersistenceService persistenceService; - private TopiaEchoBasePersistenceContext persistenceContext; + @Inject + private DbEditorService dbEditorService; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); - persistenceContext = serviceContext.getEchoBasePersistenceContext(); - } + @Inject + private EchoBaseUserPersistenceContext persistenceContext; +// @Override +// public void setServiceContext(EchoBaseServiceContext serviceContext) { +// super.setServiceContext(serviceContext); +// persistenceService = serviceContext.newService(UserDbPersistenceService.class); +// persistenceContext = serviceContext.getEchoBaseUserPersistenceContext(); +// } + public final void doImport(ImportDbConfiguration model, EchoBaseUser user) throws IOException, ImportException, TopiaException { File file = model.getInput().getFile(); @@ -94,14 +100,14 @@ EchoBaseDbMeta dbMeta = getDbMeta(); - Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables = + Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> tables = TopiaCsvImports.discoverEntries( "echobase/", dbMeta.getAllTables(), zipFile, missingEntries); validateTableEntries(dbMeta, tables); - Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations = + Map<AssociationMeta<EchoBaseUserEntityEnum>, ZipEntry> associations = TopiaCsvImports.discoverEntries( "echobase/", dbMeta.getAllAssociations(), zipFile, missingEntries); @@ -127,8 +133,8 @@ } } - ImportStrategy<EchoBaseEntityEnum> strategy = new EchoBaseImportStrategy( - EchoBaseImportModelFactory.newFactory(this), + ImportStrategy<EchoBaseUserEntityEnum> strategy = new EchoBaseImportStrategy( + EchoBaseImportModelFactory.newFactory(dbEditorService), persistenceContext, 1000 ); @@ -166,10 +172,10 @@ protected abstract void validateTableEntries(EchoBaseDbMeta dbMeta, - Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables) throws ImportException; + Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> tables) throws ImportException; protected abstract void validateAssociationEntries(EchoBaseDbMeta dbMeta, - Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws ImportException; + Map<AssociationMeta<EchoBaseUserEntityEnum>, ZipEntry> associations) throws ImportException; protected abstract void createImportLogEntry(EchoBaseUser user, File file, @@ -178,21 +184,21 @@ protected abstract void createLogBookEntry(EchoBaseUser user, File file) throws TopiaException; - protected Iterable<Voyage> importTables(ImportStrategy<EchoBaseEntityEnum> strategy, + protected Iterable<Voyage> importTables(ImportStrategy<EchoBaseUserEntityEnum> strategy, ImportDbConfiguration model, ZipFile zipFile, - Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> entriestoConsume) throws IOException, TopiaException { + Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> entriestoConsume) throws IOException, TopiaException { boolean commitAfterEachFile = model.isCommitAfterEachFile(); Iterable<Voyage> result = null; - for (Map.Entry<TableMeta<EchoBaseEntityEnum>, ZipEntry> entry : + for (Map.Entry<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> entry : entriestoConsume.entrySet()) { - TableMeta<EchoBaseEntityEnum> entryDef = entry.getKey(); + TableMeta<EchoBaseUserEntityEnum> entryDef = entry.getKey(); ZipEntry value = entry.getValue(); - CsvImportResult<EchoBaseEntityEnum> csvResult = + CsvImportResult<EchoBaseUserEntityEnum> csvResult = CsvImportResult.newResult( entryDef.getSource(), value.getName(), @@ -210,7 +216,7 @@ log.info("Will import " + entryDef); } - if (EchoBaseEntityEnum.Voyage == entryDef.getSource()) { + if (EchoBaseUserEntityEnum.Voyage == entryDef.getSource()) { result = TopiaCsvImports.importTableAndReturn(reader, strategy, entryDef, @@ -243,18 +249,18 @@ return result; } - protected void importAssociations(ImportStrategy<EchoBaseEntityEnum> strategy, + protected void importAssociations(ImportStrategy<EchoBaseUserEntityEnum> strategy, ImportDbConfiguration model, ZipFile zipFile, - Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws IOException, TopiaException { + Map<AssociationMeta<EchoBaseUserEntityEnum>, ZipEntry> associations) throws IOException, TopiaException { - for (Map.Entry<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> entry : + for (Map.Entry<AssociationMeta<EchoBaseUserEntityEnum>, ZipEntry> entry : associations.entrySet()) { - AssociationMeta<EchoBaseEntityEnum> entryDef = entry.getKey(); + AssociationMeta<EchoBaseUserEntityEnum> entryDef = entry.getKey(); ZipEntry value = entry.getValue(); - CsvImportResult<EchoBaseEntityEnum> csvResult = + CsvImportResult<EchoBaseUserEntityEnum> csvResult = CsvImportResult.newResult( entryDef.getSource(), value.getName(), Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/EchoBaseImportStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/EchoBaseImportStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/EchoBaseImportStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,21 +23,21 @@ * #L% */ -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.EchoBasePersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; import org.nuiton.csv.Import; import org.nuiton.csv.ImportToMap; -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.TopiaEntityEnum; -import org.nuiton.topia.persistence.csv.CsvProgressModel; -import org.nuiton.topia.persistence.csv.in.CsvImportResult; -import org.nuiton.topia.persistence.csv.in.ImportModelFactory; -import org.nuiton.topia.persistence.csv.in.ImportStrategy; -import org.nuiton.topia.persistence.csv.in.TopiaCsvImports; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.service.csv.CsvProgressModel; +import org.nuiton.topia.service.csv.in.CsvImportResult; +import org.nuiton.topia.service.csv.in.ImportModelFactory; +import org.nuiton.topia.service.csv.in.ImportStrategy; +import org.nuiton.topia.service.csv.in.TopiaCsvImports; import java.util.Map; @@ -47,41 +47,33 @@ * @author tchemit <chemit@codelutin.com> * @since 1.1 */ -public class EchoBaseImportStrategy implements ImportStrategy<EchoBaseEntityEnum> { +public class EchoBaseImportStrategy implements ImportStrategy<EchoBaseUserEntityEnum> { - private final EchoBasePersistenceContext persistenceContext; + private final EchoBaseUserPersistenceContext persistenceContext; -// private final TopiaContext tx; - -// private final EchoBasePersistenceHelper persistenceHelper; - private final int nbRowBuffer; - private final ImportModelFactory<EchoBaseEntityEnum> modelFactory; + private final ImportModelFactory<EchoBaseUserEntityEnum> modelFactory; - public EchoBaseImportStrategy(ImportModelFactory<EchoBaseEntityEnum> modelFactory, - EchoBasePersistenceContext persistenceContext, -// TopiaContext tx, -// EchoBasePersistenceHelper persistenceHelper, + public EchoBaseImportStrategy(ImportModelFactory<EchoBaseUserEntityEnum> modelFactory, + EchoBaseUserPersistenceContext persistenceContext, int nbRowBuffer) { this.persistenceContext = persistenceContext; -// this.tx = tx; -// this.persistenceHelper = persistenceHelper; this.nbRowBuffer = nbRowBuffer; this.modelFactory = modelFactory; } - public ImportModelFactory<EchoBaseEntityEnum> getModelFactory() { + public ImportModelFactory<EchoBaseUserEntityEnum> getModelFactory() { return modelFactory; } @Override - public <E extends TopiaEntity> void importTable(TableMeta<EchoBaseEntityEnum> meta, + public <E extends TopiaEntity> void importTable(TableMeta<EchoBaseUserEntityEnum> meta, Import<E> importer, - CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException { - TopiaDAO<E> dao = (TopiaDAO<E>) persistenceContext.getDAO(meta.getSource().getContract()); + CsvImportResult<EchoBaseUserEntityEnum> csvResult) throws TopiaException { + TopiaDao<E> dao = (TopiaDao<E>) persistenceContext.getDao(meta.getSource().getContract()); - if (meta.getSource() == EchoBaseEntityEnum.Category) { + if (meta.getSource() == EchoBaseUserEntityEnum.Category) { // special case, test if exists before to add it, otherwise skip it importAllEntitiesIfNotExisting(dao, meta, importer, csvResult, nbRowBuffer); @@ -92,10 +84,10 @@ } @Override - public <E extends TopiaEntity> Iterable<E> importTableAndReturnThem(TableMeta<EchoBaseEntityEnum> meta, + public <E extends TopiaEntity> Iterable<E> importTableAndReturnThem(TableMeta<EchoBaseUserEntityEnum> meta, Import<E> importer, - CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException { - TopiaDAO<E> dao = (TopiaDAO<E>) persistenceContext.getDAO(meta.getSource().getContract()); + CsvImportResult<EchoBaseUserEntityEnum> csvResult) throws TopiaException { + TopiaDao<E> dao = (TopiaDao<E>) persistenceContext.getDao(meta.getSource().getContract()); Iterable<E> result = TopiaCsvImports.importAllEntitiesAndReturnThem( dao, meta, importer, csvResult); @@ -104,18 +96,18 @@ } @Override - public void importAssociation(AssociationMeta<EchoBaseEntityEnum> meta, + public void importAssociation(AssociationMeta<EchoBaseUserEntityEnum> meta, ImportToMap importer, - CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException { + CsvImportResult<EchoBaseUserEntityEnum> csvResult) throws TopiaException { if (getModelFactory().isNMAssociationMeta(meta)) { - TopiaCsvImports.importNMAssociation(persistenceContext.getContext(), + TopiaCsvImports.importNMAssociation(persistenceContext.getSqlSupport(), meta, importer, csvResult, nbRowBuffer); } else { - TopiaCsvImports.importAssociation(persistenceContext.getContext(), + TopiaCsvImports.importAssociation(persistenceContext.getSqlSupport(), meta, importer, csvResult, @@ -123,7 +115,7 @@ } } - public <T extends TopiaEntityEnum, E extends TopiaEntity> void importAllEntitiesIfNotExisting(TopiaDAO<E> dao, + public <T extends TopiaEntityEnum, E extends TopiaEntity> void importAllEntitiesIfNotExisting(TopiaDao<E> dao, TableMeta<T> meta, Import<E> importer, CsvImportResult<T> csvResult, @@ -137,7 +129,7 @@ int compt = 0; for (E entity : importer) { - if (!dao.existByTopiaId(entity.getTopiaId())) { + if (!dao.forTopiaIdEquals(entity.getTopiaId()).exists()) { Map<String, Object> properties = meta.prepareCreate( entity, entity.getTopiaId()); @@ -147,7 +139,7 @@ compt++; if (compt % nbRowBuffer == 0) { // flush it - persistenceContext.getContext().getHibernateSession().flush(); + persistenceContext.getHibernateSupport().getHibernateSession().flush(); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/FreeImportDbStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,17 +24,19 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; +import fr.ifremer.echobase.services.service.DecoratorService; import fr.ifremer.echobase.services.service.importdata.ImportException; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.TableMeta; +import javax.inject.Inject; import java.io.File; import java.util.Date; import java.util.Map; @@ -48,15 +50,18 @@ */ public class FreeImportDbStrategy extends AbstractImportDbStrategy { + @Inject + private DecoratorService decoratorService; + @Override protected void validateTableEntries(EchoBaseDbMeta dbMeta, - Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables) throws ImportException { + Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> tables) throws ImportException { // nothing to validate } @Override protected void validateAssociationEntries(EchoBaseDbMeta dbMeta, - Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws ImportException { + Map<AssociationMeta<EchoBaseUserEntityEnum>, ZipEntry> associations) throws ImportException { // nothing to validate } @@ -66,7 +71,7 @@ Iterable<Voyage> importedVoyages) throws TopiaException { Date date = newDate(); - Decorator<Voyage> decorator = getDecoratorService().getDecorator( + Decorator<Voyage> decorator = decoratorService.getDecorator( getLocale(), Voyage.class, null); for (Voyage importedVoyage : importedVoyages) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdb/strategy/ReferentialImportDbStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,12 +24,12 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; import fr.ifremer.echobase.services.service.importdata.ImportException; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.metadata.AssociationMeta; import org.nuiton.topia.persistence.metadata.TableMeta; @@ -48,12 +48,12 @@ @Override protected void validateTableEntries(EchoBaseDbMeta dbMeta, - Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables) throws ImportException { + Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> tables) throws ImportException { // check that contains only referential entries - List<EchoBaseEntityEnum> badTableTypes = Lists.newArrayList(); - List<TableMeta<EchoBaseEntityEnum>> dataTables = dbMeta.getDataTables(); - for (TableMeta<EchoBaseEntityEnum> tableMetas : tables.keySet()) { + List<EchoBaseUserEntityEnum> badTableTypes = Lists.newArrayList(); + List<TableMeta<EchoBaseUserEntityEnum>> dataTables = dbMeta.getDataTables(); + for (TableMeta<EchoBaseUserEntityEnum> tableMetas : tables.keySet()) { if (dataTables.contains(tableMetas)) { badTableTypes.add(tableMetas.getSource()); } @@ -68,11 +68,11 @@ @Override protected void validateAssociationEntries(EchoBaseDbMeta dbMeta, - Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws ImportException { + Map<AssociationMeta<EchoBaseUserEntityEnum>, ZipEntry> associations) throws ImportException { - List<EchoBaseEntityEnum> badAssociationTypes = Lists.newArrayList(); - List<AssociationMeta<EchoBaseEntityEnum>> associationTables = dbMeta.getDataAssociations(); - for (AssociationMeta<EchoBaseEntityEnum> tableMetas : associations.keySet()) { + List<EchoBaseUserEntityEnum> badAssociationTypes = Lists.newArrayList(); + List<AssociationMeta<EchoBaseUserEntityEnum>> associationTables = dbMeta.getDataAssociations(); + for (AssociationMeta<EchoBaseUserEntityEnum> tableMetas : associations.keySet()) { if (associationTables.contains(tableMetas)) { badAssociationTypes.add(tableMetas.getSource()); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -31,9 +31,9 @@ import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceSupport; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.DecoratorService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.removedata.strategy.AbstractRemoveDataStrategy; import fr.ifremer.echobase.services.service.removedata.strategy.AcousticRemoveDataStrategy; import fr.ifremer.echobase.services.service.removedata.strategy.CatchesRemoveDataStrategy; @@ -51,9 +51,10 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.TimeLog; +import javax.inject.Inject; import java.util.Comparator; import java.util.List; import java.util.Map; @@ -107,15 +108,12 @@ } } - private WorkingDbPersistenceService persistenceService; + @Inject + private UserDbPersistenceService persistenceService; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); + @Inject + private DecoratorService decoratorService; - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); - } - public String removeImport(RemoveDataConfiguration model, EchoBaseUser user) { // build map of strategy to apply @@ -272,7 +270,7 @@ List<ImportLog> obsoleteImportLogs, EchoBaseUser user) { - Decorator<ImportLog> decorator = getDecoratorService(). + Decorator<ImportLog> decorator = decoratorService. getDecorator(getLocale(), ImportLog.class, null); StringBuilder buffer = new StringBuilder(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -31,14 +31,14 @@ import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Result; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import fr.ifremer.echobase.services.ProgressModel; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; +import javax.inject.Inject; import java.util.Collection; import java.util.List; import java.util.Set; @@ -59,19 +59,20 @@ protected ProgressModel progressModel; - protected WorkingDbPersistenceService persistenceService; - + @Inject + protected UserDbPersistenceService persistenceService; + public String getImportLabel() { return importLabel; } - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); +// @Override +// public void setServiceContext(EchoBaseServiceContext serviceContext) { +// super.setServiceContext(serviceContext); +// +// persistenceService = serviceContext.newService(UserDbPersistenceService.class); +// } - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); - } - public void setProgressModel(ProgressModel progressModel) { this.progressModel = progressModel; } @@ -239,7 +240,7 @@ // } // }; // try { -// Long result = getEchoBasePersistenceContext().findSingleResult(query); +// Long result = getEchoBaseUserPersistenceContext().findSingleResult(query); // return result; // } catch (TopiaException e) { // throw new EchoBaseTechnicalException(e); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -33,7 +33,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CatchesRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,7 +30,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Collections; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,7 +29,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -31,7 +31,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,10 +28,9 @@ import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.services.EchoBaseServiceContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,7 +30,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,7 +29,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/OperationRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -31,7 +31,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultEsduRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,7 +30,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Collections; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapFishRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,7 +29,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Collections; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultMapOtherRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,7 +29,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Collections; import java.util.Set; @@ -42,7 +42,7 @@ * @author tchemit <chemit@codelutin.com> * @since 2.2 */ -public class ResultMapOtherRemoveDataStrategy extends AbstractRemoveDataStrategy { +public class ResultMapOtherRemoveDataStrategy extends AbstractRemoveDataStrategy { /** Logger. */ private static final Log log = Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultRegionRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,7 +29,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.Collections; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/ResultVoyageRemoveDataStrategy.java 2013-12-22 00:29:17 UTC (rev 925) @@ -33,7 +33,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import java.util.List; import java.util.Set; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/spatial/SpatialService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/spatial/SpatialService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/spatial/SpatialService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -45,15 +45,15 @@ import fr.ifremer.echobase.entities.spatial.SpatialConfiguration; import fr.ifremer.echobase.entities.spatial.SpatialData; import fr.ifremer.echobase.io.EchoBaseIOUtil; -import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceSupport; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.util.TimeLog; +import javax.inject.Inject; import java.util.List; import java.util.Map; import java.util.Set; @@ -75,13 +75,14 @@ public static final String POSTGIS_VIEW_SQL = "/postgis-view.sql"; - private WorkingDbPersistenceService persistenceService; + @Inject + private UserDbPersistenceService persistenceService; - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - super.setServiceContext(serviceContext); - persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); - } +// @Override +// public void setServiceContext(EchoBaseServiceContext serviceContext) { +// super.setServiceContext(serviceContext); +// persistenceService = serviceContext.newService(UserDbPersistenceService.class); +// } public void addSpatialSupport() { @@ -175,7 +176,7 @@ // get possible category List<String> categoryIds = Lists.newArrayList( Iterables.transform(persistenceService.getCategories(acceptPredicate), - TopiaEntities.GET_TOPIA_ID)); + TopiaEntities.getTopiaIdFunction())); boolean filterByCategory = CollectionUtils.isNotEmpty(categoryIds); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/workingDb/WorkingDbConfigurationService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/workingDb/WorkingDbConfigurationService.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/service/workingDb/WorkingDbConfigurationService.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,16 +25,18 @@ import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.entities.DriverType; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; import fr.ifremer.echobase.entities.WorkingDbConfiguration; -import fr.ifremer.echobase.entities.WorkingDbConfigurationDAO; +import fr.ifremer.echobase.entities.WorkingDbConfigurationTopiaDao; import fr.ifremer.echobase.persistence.JdbcConfiguration; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.AbstractTopiaContext; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.internal.support.HibernateTopiaSqlSupport; +import javax.inject.Inject; import java.io.File; import java.sql.Connection; import java.sql.SQLException; @@ -54,9 +56,12 @@ public static final String CREATE_DB_SQL_QUERY = "CREATE DATABASE \"%s\" WITH OWNER = %s ENCODING 'UTF8' TEMPLATE template0;"; + @Inject + EchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext; + public List<WorkingDbConfiguration> getWorkingDbConfigurations() { try { - List<WorkingDbConfiguration> result = getDAO().findAll(); + List<WorkingDbConfiguration> result = getDao().findAll(); return result; } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -89,9 +94,9 @@ throw new WorkingDbConfigurationAlreadyExistException(); } - WorkingDbConfiguration result = getDAO().create(conf); + WorkingDbConfiguration result = getDao().create(conf); - getEchoBaseInternalPersistenceContext().commitTransaction(); + echoBaseInternalPersistenceContext.commit(); return result; } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -101,8 +106,8 @@ public void delete(String id) throws WorkingDbConfigurationNotFoundException { try { WorkingDbConfiguration entity = getExistingConf(id); - getDAO().delete(entity); - getEchoBaseInternalPersistenceContext().commitTransaction(); + getDao().delete(entity); + echoBaseInternalPersistenceContext.commit(); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); } @@ -110,7 +115,7 @@ public WorkingDbConfiguration newConfiguration() { try { - return getDAO().newInstance(); + return getDao().newInstance(); } catch (TopiaException e) { throw new EchoBaseTechnicalException(e); } @@ -118,8 +123,7 @@ public boolean isUrlAlreadyUsed(String url) { try { - return getDAO().existByProperties( - WorkingDbConfiguration.PROPERTY_URL, url); + return getDao().forUrlEquals(url).exists(); } catch (TopiaException e) { throw new EchoBaseTechnicalException(e); } @@ -162,8 +166,8 @@ log.info("Create new postgres database: " + dbName + " with sql statement: " + sql); } - serviceContext.getEchoBasePersistenceContext().getContext().getHibernateSession().doWork( - new AbstractTopiaContext.SQLWork(sql) { + serviceContext.getEchoBaseUserPersistenceContext().getHibernateSupport().getHibernateSession().doWork( + new HibernateTopiaSqlSupport.HibernateSqlWork(sql) { @Override public void execute(Connection connection) throws SQLException { //to create a database, need no transaction block @@ -179,14 +183,14 @@ } protected WorkingDbConfiguration getExistingConf(String id) throws WorkingDbConfigurationNotFoundException { - WorkingDbConfiguration entity = getDAO().findByTopiaId(id); + WorkingDbConfiguration entity = getDao().findByTopiaId(id); if (entity == null) { throw new WorkingDbConfigurationNotFoundException(); } return entity; } - protected WorkingDbConfigurationDAO getDAO() { - return getEchoBaseInternalPersistenceContext().getWorkingDbConfigurationDAO(); + protected WorkingDbConfigurationTopiaDao getDao() { + return echoBaseInternalPersistenceContext.getWorkingDbConfigurationDao(); } } \ No newline at end of file Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,8 +24,8 @@ package fr.ifremer.echobase.services; import com.google.common.base.Preconditions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUserImpl; import fr.ifremer.echobase.entities.data.DataProcessing; import fr.ifremer.echobase.entities.data.Transit; @@ -46,11 +46,12 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Rule; -import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.FileUtil; import org.nuiton.util.StringUtil; +import javax.inject.Inject; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -79,9 +80,16 @@ @Rule public FakeEchoBaseServiceContext fakeServiceContext = initContext(); + @Inject + private ExportDbService exportDbService; + + @Inject + private ImportDbService importDbService; + @Before public void setUp() throws Exception { - setServiceContext(fakeServiceContext); + this.serviceContext = fakeServiceContext; + this.fakeServiceContext.inject(this); } protected EchoBaseUser createFakeUser() { @@ -177,8 +185,8 @@ int numberUpdated, int nbCount) throws TopiaException { Assert.assertNotNull(actual); - Set<EchoBaseEntityEnum> entityTypes = actual.getEntityTypes(); - EchoBaseEntityEnum expectedEntityType = EchoBaseEntityEnum.valueOf(entityType); + Set<EchoBaseUserEntityEnum> entityTypes = actual.getEntityTypes(); + EchoBaseUserEntityEnum expectedEntityType = EchoBaseUserEntityEnum.valueOf(entityType); Assert.assertTrue(entityTypes.contains(expectedEntityType)); Assert.assertEquals(numberCreated, actual.getNumberCreated(expectedEntityType)); Assert.assertEquals(numberUpdated, actual.getNumberUpdated(expectedEntityType)); @@ -194,8 +202,8 @@ Assert.assertTrue(results.size() >= pos); EchoBaseCsvFileImportResult actual = results.get(pos); Assert.assertNotNull(actual); - Set<EchoBaseEntityEnum> entityTypes = actual.getEntityTypes(); - EchoBaseEntityEnum expectedEntityType = EchoBaseEntityEnum.valueOf(entityType); + Set<EchoBaseUserEntityEnum> entityTypes = actual.getEntityTypes(); + EchoBaseUserEntityEnum expectedEntityType = EchoBaseUserEntityEnum.valueOf(entityType); Assert.assertTrue(entityTypes.contains(expectedEntityType)); Assert.assertEquals(numberCreated, actual.getNumberCreated(expectedEntityType)); Assert.assertEquals(numberUpdated, actual.getNumberUpdated(expectedEntityType)); @@ -213,7 +221,7 @@ protected <E extends TopiaEntity> void assertNbEntities(Class<E> entityType, int expectedNumber) throws TopiaException { - long count = serviceContext.getEchoBasePersistenceContext().getDAO(entityType).count(); + long count = serviceContext.getEchoBaseUserPersistenceContext().getDao(entityType).count(); Assert.assertEquals(count, expectedNumber); } @@ -224,14 +232,14 @@ } protected String getVoyageId() { - Voyage voyage = serviceContext.getEchoBasePersistenceContext().getVoyageDAO().findAll().get(0); + Voyage voyage = serviceContext.getEchoBaseUserPersistenceContext().getVoyageDao().findAll().get(0); Preconditions.checkNotNull(voyage); return voyage.getTopiaId(); } protected String getTransitId(String voyageId) { Preconditions.checkNotNull(voyageId); - Voyage voyage = serviceContext.getEchoBasePersistenceContext().getVoyageDAO().findByTopiaId(voyageId); + Voyage voyage = serviceContext.getEchoBaseUserPersistenceContext().getVoyageDao().findByTopiaId(voyageId); Preconditions.checkArgument(!voyage.isTransitEmpty()); List<Transit> transits = voyage.getTransit(); Transit transit = transits.get(0); @@ -239,15 +247,13 @@ } protected String getDataProcessingId() { - DataProcessing dataProcessing = serviceContext.getEchoBasePersistenceContext().getDataProcessingDAO().findAll().get(0); + DataProcessing dataProcessing = serviceContext.getEchoBaseUserPersistenceContext().getDataProcessingDao().findAll().get(0); Preconditions.checkNotNull(dataProcessing); return dataProcessing.getTopiaId(); } protected void importdb(ImportDbMode mode, String path) throws IOException, ImportException { - ImportDbService service = getImportDbService(); - ImportDbConfiguration conf = new ImportDbConfiguration(getLocale()); File workingDirectory = new File(getTestDir(), "work-dir"); @@ -261,13 +267,11 @@ EchoBaseUser user = new EchoBaseUserImpl(); user.setEmail("testUser@fake.fr"); - service.doImport(conf, user); + importDbService.doImport(conf, user); } protected void exportDb(Voyage voyage, String exportFilename) throws IOException { - ExportDbService service = getExportDbService(); - ExportDbConfiguration conf = new ExportDbConfiguration(); conf.setVoyageIds(new String[]{voyage.getTopiaId()}); @@ -277,6 +281,6 @@ conf.setFileName(exportFilename); conf.setComputeSteps(true); conf.setExportDbMode(ExportDbMode.ALL); - service.doExport(conf); + exportDbService.doExport(conf); } } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,10 +27,11 @@ import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.config.EchoBaseConfiguration; import fr.ifremer.echobase.config.EchoBaseConfigurationOption; -import fr.ifremer.echobase.entities.TopiaEchoBaseInternalPersistenceContext; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; -import fr.ifremer.echobase.persistence.EchobaseTopiaContexts; +import fr.ifremer.echobase.persistence.EchobaseTopiaApplicationContexts; import fr.ifremer.echobase.persistence.JdbcConfiguration; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.time.DateUtils; @@ -38,8 +39,7 @@ import org.apache.commons.logging.LogFactory; import org.junit.rules.TestWatcher; import org.junit.runner.Description; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaContextFactory; +import org.nuiton.topia.persistence.TopiaConfigurationConstants; import org.nuiton.util.FileUtil; import java.io.File; @@ -69,20 +69,23 @@ protected final String initDb; - protected TopiaContext rootContext; - protected Date fakeCurrentTime; protected File testDir; - protected TopiaEchoBasePersistenceContext echoBasePersistenceContext; + protected EchoBaseUserPersistenceContext echoBasePersistenceContext; - protected TopiaEchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext; + protected EchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext; protected EchoBaseConfiguration configuration; + private EchoBaseUserTopiaApplicationContext echoBaseTopiaApplicationContext; + + private final EchobaseAieOC injector; + public FakeEchoBaseServiceContext(String initDb) { this.initDb = initDb; + this.injector = new ServiceEchobaseAieOC(); } protected File getTestSpecificDirectory(Description description) { @@ -149,45 +152,54 @@ configuration = new EchoBaseConfiguration(defaultProps); JdbcConfiguration dbConf = JdbcConfiguration.newEmbeddedConfig(testDir); - rootContext = EchobaseTopiaContexts.newWorkingDb(dbConf); + echoBaseTopiaApplicationContext = EchobaseTopiaApplicationContexts.newWorkingDb(dbConf); } @Override protected void finished(Description description) { super.finished(description); - if (!rootContext.isClosed()) { - rootContext.closeContext(); + if (!echoBaseTopiaApplicationContext.isClosed()) { + echoBaseTopiaApplicationContext.closeContext(); } } @Override - public TopiaEchoBasePersistenceContext getEchoBasePersistenceContext() { + public EchoBaseUserTopiaApplicationContext getEchoBaseUserApplicationContext() { + return echoBaseTopiaApplicationContext; + } + + @Override + public void setEchoBaseUserApplicationContext(EchoBaseUserTopiaApplicationContext applicationContext) { + this.echoBaseTopiaApplicationContext = applicationContext; + } + + @Override + public EchoBaseUserPersistenceContext getEchoBaseUserPersistenceContext() { if (echoBasePersistenceContext == null) { - echoBasePersistenceContext = - new TopiaEchoBasePersistenceContext(rootContext.beginTransaction()); + echoBasePersistenceContext = echoBaseTopiaApplicationContext.newPersistenceContext(); } return echoBasePersistenceContext; } @Override - public void setEchoBasePersistenceContext(TopiaEchoBasePersistenceContext echoBasePersistenceContext) { - this.echoBasePersistenceContext = echoBasePersistenceContext; + public void setEchoBaseUserPersistenceContext(EchoBaseUserPersistenceContext userTopiaPersistenceContext) { + this.echoBasePersistenceContext = userTopiaPersistenceContext; } @Override - public TopiaEchoBaseInternalPersistenceContext getEchoBaseInternalPersistenceContext() { + public EchoBaseInternalPersistenceContext getEchoBaseInternalPersistenceContext() { return echoBaseInternalPersistenceContext; } @Override - public void setEchoBaseInternalPersistenceContext(TopiaEchoBaseInternalPersistenceContext echoBaseInternalPersistenceContext) { - this.echoBaseInternalPersistenceContext = echoBaseInternalPersistenceContext; + public void setEchoBaseInternalPersistenceContext(EchoBaseInternalPersistenceContext internalTopiaPersistenceContext) { + this.echoBaseInternalPersistenceContext = internalTopiaPersistenceContext; } @Override - public String getWorkgingDbUrl() { - String result = rootContext.getConfig().getProperty(TopiaContextFactory.CONFIG_URL); + public String getUserDbUrl() { + String result = echoBaseTopiaApplicationContext.getConfiguration().get(TopiaConfigurationConstants.CONFIG_URL); return result; } @@ -222,11 +234,22 @@ throw new EchoBaseTechnicalException(e); } - service.setServiceContext(this); + inject(service); + return service; } + public void inject(Object service) { + try { + injector.inject(this, service); + } catch (IllegalAccessException e) { + throw new EchoBaseTechnicalException(e); + } catch (ClassNotFoundException e) { + throw new EchoBaseTechnicalException(e); + } + } + @Override public Date newDate() { Date result = new Date(); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FixCellsIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FixCellsIT.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FixCellsIT.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,7 +28,7 @@ import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Data; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.importdata.AcousticImportConfiguration; import fr.ifremer.echobase.services.service.importdata.AcousticImportService; import fr.ifremer.echobase.services.service.importdata.CellPositionReference; @@ -36,8 +36,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Test; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.TopiaDao; import java.io.IOException; import java.text.DateFormat; @@ -181,9 +181,9 @@ protected void fixCellDatas() throws TopiaException, ParseException { int nb = 0; - TopiaDAO<Cell> cellDAO = serviceContext.getEchoBasePersistenceContext().getCellDAO(); + TopiaDao<Cell> cellDAO = serviceContext.getEchoBaseUserPersistenceContext().getCellDao(); - WorkingDbPersistenceService persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); + UserDbPersistenceService persistenceService = serviceContext.newService(UserDbPersistenceService.class); long nbCells = cellDAO.count(); for (Cell cell : cellDAO) { @@ -217,9 +217,9 @@ private void exportDatabase() throws TopiaException, IOException { - TopiaDAO<Voyage> voyageDAO = serviceContext.getEchoBasePersistenceContext().getVoyageDAO(); + TopiaDao<Voyage> voyageDAO = serviceContext.getEchoBaseUserPersistenceContext().getVoyageDao(); - WorkingDbPersistenceService persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); + UserDbPersistenceService persistenceService = serviceContext.newService(UserDbPersistenceService.class); long nbVoyages = persistenceService.countVoyage(); Voyage voyage; @@ -228,7 +228,7 @@ // crate voyage - voyage = voyageDAO.create(Voyage.PROPERTY_MISSION, serviceContext.getEchoBasePersistenceContext().getMissionDAO().findAll().get(0), + voyage = voyageDAO.create(Voyage.PROPERTY_MISSION, serviceContext.getEchoBaseUserPersistenceContext().getMissionDao().findAll().get(0), Voyage.PROPERTY_NAME, "name", Voyage.PROPERTY_START_DATE, newDate(), Voyage.PROPERTY_END_DATE, newDate(), Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/DecoratorServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/DecoratorServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/DecoratorServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,13 +23,14 @@ */ package fr.ifremer.echobase.services.service; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.services.EchoBaseTestServiceSupport; import fr.ifremer.echobase.services.FakeEchoBaseServiceContext; import org.junit.Assert; import org.junit.Test; import org.nuiton.decorator.Decorator; +import javax.inject.Inject; import java.util.List; import java.util.Locale; @@ -41,6 +42,9 @@ */ public class DecoratorServiceTest extends EchoBaseTestServiceSupport { + @Inject + private DecoratorService decoratorService; + @Override protected FakeEchoBaseServiceContext initContext() { return new FakeEchoBaseServiceContext(null); @@ -49,12 +53,11 @@ @Test public void getDecoratorForReferences() throws Exception { Locale locale = serviceContext.getLocale(); - DecoratorService service = getDecoratorService(); - List<EchoBaseEntityEnum> expectedTypes = serviceContext.getDbMeta().getReferenceTypes(); + List<EchoBaseUserEntityEnum> expectedTypes = serviceContext.getDbMeta().getReferenceTypes(); - for (EchoBaseEntityEnum type : expectedTypes) { + for (EchoBaseUserEntityEnum type : expectedTypes) { Decorator<?> decorator = - service.getDecorator(locale, type.getContract(), null); + decoratorService.getDecorator(locale, type.getContract(), null); Assert.assertNotNull("Missing decorator for type : " + type, decorator); } } @@ -62,13 +65,12 @@ @Test public void getDecoratorForData() throws Exception { Locale locale = serviceContext.getLocale(); - DecoratorService service = getDecoratorService(); - List<EchoBaseEntityEnum> expectedTypes = + List<EchoBaseUserEntityEnum> expectedTypes = serviceContext.getDbMeta().getDataTypes(); - for (EchoBaseEntityEnum type : expectedTypes) { + for (EchoBaseUserEntityEnum type : expectedTypes) { Decorator<?> decorator = - service.getDecorator(locale, type.getContract(), null); + decoratorService.getDecorator(locale, type.getContract(), null); Assert.assertNotNull("Missing decorator for type : " + type, decorator); } } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/exportdb/ExportDbServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/exportdb/ExportDbServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/exportdb/ExportDbServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,7 +25,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Data; @@ -42,17 +42,18 @@ import fr.ifremer.echobase.io.EchoBaseIOUtil; import fr.ifremer.echobase.services.EchoBaseTestServiceSupport; import fr.ifremer.echobase.services.FakeEchoBaseServiceContext; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Test; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.csv.in.TopiaCsvImports; +import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.metadata.TableMeta; +import org.nuiton.topia.service.csv.in.TopiaCsvImports; import org.nuiton.util.FileUtil; +import javax.inject.Inject; import java.io.File; import java.io.IOException; import java.util.List; @@ -76,19 +77,22 @@ /** Logger. */ private static final Log log = LogFactory.getLog(ExportDbServiceTest.class); + @Inject + private ExportDbService exportDbService; + @Override public void setUp() throws Exception { super.setUp(); - TopiaDAO<DataProcessing> dataProcessingDAO = serviceContext.getEchoBasePersistenceContext().getDataProcessingDAO(); - TopiaDAO<DataAcquisition> dataAcquisitionDAO = serviceContext.getEchoBasePersistenceContext().getDataAcquisitionDAO(); - TopiaDAO<Cell> cellDAO = serviceContext.getEchoBasePersistenceContext().getCellDAO(); - TopiaDAO<Category> categoryDAO = serviceContext.getEchoBasePersistenceContext().getCategoryDAO(); - TopiaDAO<Result> resultDAO = serviceContext.getEchoBasePersistenceContext().getResultDAO(); - TopiaDAO<SpeciesCategory> speciesCategoryDAO = serviceContext.getEchoBasePersistenceContext().getSpeciesCategoryDAO(); - TopiaDAO<Data> dataDAO = serviceContext.getEchoBasePersistenceContext().getDataDAO(); + TopiaDao<DataProcessing> dataProcessingDAO = serviceContext.getEchoBaseUserPersistenceContext().getDataProcessingDao(); + TopiaDao<DataAcquisition> dataAcquisitionDAO = serviceContext.getEchoBaseUserPersistenceContext().getDataAcquisitionDao(); + TopiaDao<Cell> cellDAO = serviceContext.getEchoBaseUserPersistenceContext().getCellDao(); + TopiaDao<Category> categoryDAO = serviceContext.getEchoBaseUserPersistenceContext().getCategoryDao(); + TopiaDao<Result> resultDAO = serviceContext.getEchoBaseUserPersistenceContext().getResultDao(); + TopiaDao<SpeciesCategory> speciesCategoryDAO = serviceContext.getEchoBaseUserPersistenceContext().getSpeciesCategoryDao(); + TopiaDao<Data> dataDAO = serviceContext.getEchoBaseUserPersistenceContext().getDataDao(); - WorkingDbPersistenceService persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); + UserDbPersistenceService persistenceService = serviceContext.newService(UserDbPersistenceService.class); Voyage voyage = persistenceService.getVoyage(getVoyageId()); Assert.assertNotNull(voyage); @@ -96,7 +100,7 @@ Transect transect = voyage.getTransit().get(0).getTransect().get(0); Assert.assertNotNull(transect); - List<AcousticInstrument> acousticInstruments = serviceContext.getEchoBasePersistenceContext().getAcousticInstrumentDAO().findAll(); + List<AcousticInstrument> acousticInstruments = serviceContext.getEchoBaseUserPersistenceContext().getAcousticInstrumentDao().findAll(); Assert.assertTrue(CollectionUtils.isNotEmpty(acousticInstruments)); AcousticInstrument acousticInstrument = acousticInstruments.get(0); DataAcquisition dataAcquisition = dataAcquisitionDAO.create( @@ -109,11 +113,11 @@ ); dataAcquisition.addDataProcessing(dataProcessing); - List<Species> speciesList = serviceContext.getEchoBasePersistenceContext().getSpeciesDAO().findAll(); + List<Species> speciesList = serviceContext.getEchoBaseUserPersistenceContext().getSpeciesDao().findAll(); Assert.assertTrue(CollectionUtils.isNotEmpty(speciesList)); Species species = speciesList.get(0); - List<DataMetadata> dataMetadatas = serviceContext.getEchoBasePersistenceContext().getDataMetadataDAO().findAll(); + List<DataMetadata> dataMetadatas = serviceContext.getEchoBaseUserPersistenceContext().getDataMetadataDao().findAll(); Assert.assertTrue(CollectionUtils.isNotEmpty(dataMetadatas)); DataMetadata dataMetadata = dataMetadatas.get(0); @@ -125,7 +129,7 @@ Category.PROPERTY_SPECIES_CATEGORY, speciesCategory ); - List<CellType> cellTypes = serviceContext.getEchoBasePersistenceContext().getCellTypeDAO().findAll(); + List<CellType> cellTypes = serviceContext.getEchoBaseUserPersistenceContext().getCellTypeDao().findAll(); Assert.assertTrue(CollectionUtils.isNotEmpty(cellTypes)); CellType cellType = cellTypes.get(0); @@ -194,14 +198,12 @@ ); postCell.addResult(postCellResult); - serviceContext.getEchoBasePersistenceContext().commitTransaction(); + serviceContext.getEchoBaseUserPersistenceContext().commit(); } @Test public void exportReferential() throws IOException { - ExportDbService service = getExportDbService(); - ExportDbConfiguration conf = new ExportDbConfiguration(); File workingDirectory = new File(getTestDir(), "work-dir"); @@ -210,7 +212,7 @@ conf.setFileName("echobase-referential"); conf.setComputeSteps(true); conf.setExportDbMode(ExportDbMode.REFERENTIAL); - service.doExport(conf); + exportDbService.doExport(conf); File exportFile = conf.getExportFile(); Assert.assertNotNull(exportFile); Assert.assertTrue(exportFile.exists()); @@ -218,7 +220,7 @@ // check all tables (referential) where exported ZipFile zipFile = new ZipFile(exportFile); - Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables = + Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> tables = TopiaCsvImports.discoverEntries( "echobase/", getDbMeta().getReferenceTables(), zipFile, Lists.<String>newArrayList()); @@ -229,8 +231,6 @@ @Test public void exportReferentialAndData() throws IOException { - ExportDbService service = getExportDbService(); - ExportDbConfiguration conf = new ExportDbConfiguration(); conf.setVoyageIds(new String[]{getVoyageId()}); @@ -241,7 +241,7 @@ conf.setFileName("echobase-referentialAndData"); conf.setComputeSteps(true); conf.setExportDbMode(ExportDbMode.REFERENTIAL_AND_DATA); - service.doExport(conf); + exportDbService.doExport(conf); File exportFile = conf.getExportFile(); Assert.assertNotNull(exportFile); Assert.assertTrue(exportFile.exists()); @@ -250,7 +250,7 @@ // check all tables (referential + data) where exported ZipFile zipFile = new ZipFile(exportFile); - Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables = + Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> tables = TopiaCsvImports.discoverEntries( "echobase/", getDbMeta().getAllTables(), zipFile, Lists.<String>newArrayList()); @@ -261,8 +261,6 @@ @Test public void exportAll() throws IOException { - ExportDbService service = getExportDbService(); - ExportDbConfiguration conf = new ExportDbConfiguration(); conf.setVoyageIds(new String[]{getVoyageId()}); @@ -272,7 +270,7 @@ conf.setFileName("echobase-all"); conf.setComputeSteps(true); conf.setExportDbMode(ExportDbMode.ALL); - service.doExport(conf); + exportDbService.doExport(conf); File exportFile = conf.getExportFile(); Assert.assertNotNull(exportFile); Assert.assertTrue(exportFile.exists()); @@ -281,7 +279,7 @@ // check all tables (referential + data) where exported ZipFile zipFile = new ZipFile(exportFile); - Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables = + Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> tables = TopiaCsvImports.discoverEntries( "echobase/", getDbMeta().getAllTables(), zipFile, Lists.<String>newArrayList()); @@ -289,17 +287,17 @@ checkAllTablesExported(zipFile, tables); } - private void checkAllTablesExported(ZipFile zipFile, Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables) throws IOException { - for (Map.Entry<TableMeta<EchoBaseEntityEnum>, ZipEntry> entry : tables.entrySet()) { - TableMeta<EchoBaseEntityEnum> type = entry.getKey(); - if (type.getSource() == EchoBaseEntityEnum.Gear) { + private void checkAllTablesExported(ZipFile zipFile, Map<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> tables) throws IOException { + for (Map.Entry<TableMeta<EchoBaseUserEntityEnum>, ZipEntry> entry : tables.entrySet()) { + TableMeta<EchoBaseUserEntityEnum> type = entry.getKey(); + if (type.getSource() == EchoBaseUserEntityEnum.Gear) { // there is some extra lines so can not count from here... //FIXME should use a csv import to read entries nstead continue; } ZipEntry zipEntry = entry.getValue(); long nbCells = EchoBaseIOUtil.countLines(zipFile, Sets.newHashSet(zipEntry)); - Assert.assertEquals(1 + serviceContext.getEchoBasePersistenceContext().getDAO(type.getEntityType()).count(), nbCells); + Assert.assertEquals(1 + serviceContext.getEchoBaseUserPersistenceContext().getDao(type.getEntityType()).count(), nbCells); } } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/exportquery/ExportQueryServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,10 +26,11 @@ import fr.ifremer.echobase.services.EchoBaseTestServiceSupport; import fr.ifremer.echobase.services.FakeEchoBaseServiceContext; import org.junit.Assert; -import org.junit.Before; import org.junit.Ignore; import org.junit.Test; +import javax.inject.Inject; + /** * To test {@link ExportQueryService}. * @@ -42,12 +43,13 @@ return new FakeEchoBaseServiceContext(null); } - ExportQueryService service; + @Inject + ExportQueryService exportQueryService; - @Before - public void setup() { - service = getExportQueryService(); - } +// @Before +// public void setup() { +// exportQueryService = getExportQueryService(); +// } @Ignore @Test @@ -66,7 +68,7 @@ protected void processLibreOfficeSqlQuery(String libreOfficeQuery, String expected) { - String actual = service.processLibreOfficeSqlQuery(libreOfficeQuery); + String actual = exportQueryService.processLibreOfficeSqlQuery(libreOfficeQuery); Assert.assertEquals(expected, actual); } } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataServiceIT.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataServiceIT.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,14 +23,13 @@ */ package fr.ifremer.echobase.services.service.importdata; -import com.google.common.base.Preconditions; import com.google.common.collect.Collections2; import com.google.common.collect.Sets; import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.CellDAO; +import fr.ifremer.echobase.entities.data.CellTopiaDao; import fr.ifremer.echobase.entities.data.Data; import fr.ifremer.echobase.entities.data.DataAcquisition; import fr.ifremer.echobase.entities.data.DataProcessing; @@ -46,17 +45,17 @@ import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.CellType; -import fr.ifremer.echobase.entities.references.CellTypeDAO; +import fr.ifremer.echobase.entities.references.CellTypeTopiaDao; import fr.ifremer.echobase.io.InputFile; import fr.ifremer.echobase.services.EchoBaseTestServiceSupport; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.nuiton.csv.Import; import org.nuiton.csv.ext.CsvReaders; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.csv.in.AbstractImportModel; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.service.csv.in.AbstractImportModel; import org.nuiton.util.TimeLog; import java.io.File; @@ -139,7 +138,7 @@ return result; } -// protected <E extends TopiaEntity> E create(TopiaDAO<E> dao, +// protected <E extends TopiaEntity> E create(TopiaDao<E> dao, // Object... properties) { // try { // E result = dao.create(properties); @@ -154,7 +153,7 @@ InputFile inputFile) throws TopiaException { - WorkingDbPersistenceService persistenceService = serviceContext.newService(WorkingDbPersistenceService.class); + UserDbPersistenceService persistenceService = serviceContext.newService(UserDbPersistenceService.class); ResultsImportService service = newService(ResultsImportService.class); Voyage voyage = persistenceService.getVoyage(voyageId); @@ -166,7 +165,7 @@ if (voyage.isTransitEmpty()) { // create a fake transit - transit = serviceContext.getEchoBasePersistenceContext().getTransitDAO().create(); + transit = serviceContext.getEchoBaseUserPersistenceContext().getTransitDao().create(); voyage.addTransit(transit); } else { transit = voyage.getTransit().get(0); @@ -175,7 +174,7 @@ if (transit.isTransectEmpty()) { // create a fake transect - transect = serviceContext.getEchoBasePersistenceContext().getTransectDAO().create(); + transect = serviceContext.getEchoBaseUserPersistenceContext().getTransectDao().create(); transit.addTransect(transect); } else { transect = transit.getTransect().get(0); @@ -184,9 +183,9 @@ if (transect.isDataAcquisitionEmpty()) { // create a fake dataAcquisition - dataAcquisition = serviceContext.getEchoBasePersistenceContext().getDataAcquisitionDAO().create( + dataAcquisition = serviceContext.getEchoBaseUserPersistenceContext().getDataAcquisitionDao().create( DataAcquisition.PROPERTY_ACOUSTIC_INSTRUMENT, - serviceContext.getEchoBasePersistenceContext().getAcousticInstrumentDAO().findAll().get(0)); + serviceContext.getEchoBaseUserPersistenceContext().getAcousticInstrumentDao().findAll().get(0)); transect.addDataAcquisition(dataAcquisition); } else { dataAcquisition = transect.getDataAcquisition().iterator().next(); @@ -195,7 +194,7 @@ if (dataAcquisition.isDataProcessingEmpty()) { // creates a fake dataProcessing - dataProcessing = serviceContext.getEchoBasePersistenceContext().getDataProcessingDAO().create( + dataProcessing = serviceContext.getEchoBaseUserPersistenceContext().getDataProcessingDao().create( DataProcessing.PROPERTY_ID, "id", DataProcessing.PROPERTY_PROCESSING_TEMPLATE, "pt" ); @@ -204,7 +203,7 @@ dataProcessing = dataAcquisition.getDataProcessing().iterator().next(); } - CellDAO dao = serviceContext.getEchoBasePersistenceContext().getCellDAO(); + CellTopiaDao dao = serviceContext.getEchoBaseUserPersistenceContext().getCellDao(); Set<String> cellsNames; @@ -220,10 +219,10 @@ esduColumnName, inputFile.getFile()); - CellTypeDAO cellTypeDAO = serviceContext.getEchoBasePersistenceContext().getCellTypeDAO(); + CellTypeTopiaDao cellTypeDAO = serviceContext.getEchoBaseUserPersistenceContext().getCellTypeDao(); - CellType esduCellType = cellTypeDAO.findById("Esdu"); - Preconditions.checkNotNull(esduCellType); + CellType esduCellType = cellTypeDAO.forIdEquals("Esdu").findUnique(); +// Preconditions.checkNotNull(esduCellType); Reader reader = service.getInputFileReader(inputFile); try { Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/CommonTransectImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/CommonTransectImportServiceIT.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/CommonTransectImportServiceIT.java 2013-12-22 00:29:17 UTC (rev 925) @@ -69,7 +69,7 @@ conf.setImportType(ImportType.COMMON_TRANSECT); // let's delete every transects - for (Transit transit : serviceContext.getEchoBasePersistenceContext().getTransitDAO()) { + for (Transit transit : serviceContext.getEchoBaseUserPersistenceContext().getTransitDao()) { transit.clearTransect(); } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/CommonTransitImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/CommonTransitImportServiceIT.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/CommonTransitImportServiceIT.java 2013-12-22 00:29:17 UTC (rev 925) @@ -58,7 +58,7 @@ assertImportCommonData(); // let's delete every transits - for (Voyage voyage : serviceContext.getEchoBasePersistenceContext().getVoyageDAO()) { + for (Voyage voyage : serviceContext.getEchoBaseUserPersistenceContext().getVoyageDao()) { voyage.clearTransit(); } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdb/ImportDbServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdb/ImportDbServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdb/ImportDbServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -32,6 +32,7 @@ import org.junit.Test; import org.nuiton.util.FileUtil; +import javax.inject.Inject; import java.io.File; import java.io.IOException; @@ -45,6 +46,9 @@ public static final String DB_VERSION = "1.2"; + @Inject + private ImportDbService importDbService; + @Override protected FakeEchoBaseServiceContext initContext() { return new FakeEchoBaseServiceContext(null); @@ -53,8 +57,6 @@ @Test public void importDb() throws IOException, ImportException { - ImportDbService service = getImportDbService(); - ImportDbConfiguration conf = new ImportDbConfiguration(getLocale()); File workingDirectory = new File(getTestDir(), "work-dir"); @@ -68,7 +70,7 @@ EchoBaseUser user = new EchoBaseUserImpl(); user.setEmail("testUser@fake.fr"); - service.doImport(conf, user); + importDbService.doImport(conf, user); Assert.assertTrue(conf.getProgress() > 94); } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,43 +25,43 @@ import com.google.common.collect.Lists; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; import fr.ifremer.echobase.entities.data.Category; -import fr.ifremer.echobase.entities.data.CategoryDAO; +import fr.ifremer.echobase.entities.data.CategoryTopiaDao; import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.CellDAO; +import fr.ifremer.echobase.entities.data.CellTopiaDao; import fr.ifremer.echobase.entities.data.Data; import fr.ifremer.echobase.entities.data.DataAcquisition; -import fr.ifremer.echobase.entities.data.DataAcquisitionDAO; -import fr.ifremer.echobase.entities.data.DataDAO; +import fr.ifremer.echobase.entities.data.DataAcquisitionTopiaDao; import fr.ifremer.echobase.entities.data.DataProcessing; -import fr.ifremer.echobase.entities.data.DataProcessingDAO; +import fr.ifremer.echobase.entities.data.DataProcessingTopiaDao; +import fr.ifremer.echobase.entities.data.DataTopiaDao; import fr.ifremer.echobase.entities.data.Echotype; -import fr.ifremer.echobase.entities.data.EchotypeDAO; +import fr.ifremer.echobase.entities.data.EchotypeTopiaDao; import fr.ifremer.echobase.entities.data.GearMetadataValue; -import fr.ifremer.echobase.entities.data.GearMetadataValueDAO; +import fr.ifremer.echobase.entities.data.GearMetadataValueTopiaDao; import fr.ifremer.echobase.entities.data.LengthAgeKey; -import fr.ifremer.echobase.entities.data.LengthAgeKeyDAO; +import fr.ifremer.echobase.entities.data.LengthAgeKeyTopiaDao; import fr.ifremer.echobase.entities.data.LengthWeightKey; -import fr.ifremer.echobase.entities.data.LengthWeightKeyDAO; +import fr.ifremer.echobase.entities.data.LengthWeightKeyTopiaDao; import fr.ifremer.echobase.entities.data.Operation; -import fr.ifremer.echobase.entities.data.OperationDAO; import fr.ifremer.echobase.entities.data.OperationMetadataValue; -import fr.ifremer.echobase.entities.data.OperationMetadataValueDAO; +import fr.ifremer.echobase.entities.data.OperationMetadataValueTopiaDao; +import fr.ifremer.echobase.entities.data.OperationTopiaDao; import fr.ifremer.echobase.entities.data.Result; -import fr.ifremer.echobase.entities.data.ResultDAO; +import fr.ifremer.echobase.entities.data.ResultTopiaDao; import fr.ifremer.echobase.entities.data.Sample; -import fr.ifremer.echobase.entities.data.SampleDAO; import fr.ifremer.echobase.entities.data.SampleData; -import fr.ifremer.echobase.entities.data.SampleDataDAO; +import fr.ifremer.echobase.entities.data.SampleDataTopiaDao; +import fr.ifremer.echobase.entities.data.SampleTopiaDao; import fr.ifremer.echobase.entities.data.Transect; -import fr.ifremer.echobase.entities.data.TransectDAO; +import fr.ifremer.echobase.entities.data.TransectTopiaDao; import fr.ifremer.echobase.entities.data.Transit; -import fr.ifremer.echobase.entities.data.TransitDAO; +import fr.ifremer.echobase.entities.data.TransitTopiaDao; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.data.VoyageDAO; +import fr.ifremer.echobase.entities.data.VoyageTopiaDao; import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.DataMetadata; @@ -100,11 +100,12 @@ import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Before; -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.TopiaException; import org.nuiton.topia.persistence.TopiaIdFactory; +import javax.inject.Inject; import java.util.List; /** @@ -203,74 +204,77 @@ protected static final String transect2_2Id = "fr.ifremer.echobase.entities.data.Transect#2#2"; - protected VoyageDAO voyageDao; + protected VoyageTopiaDao voyageDAO; - protected TransectDAO transectDAO; + protected TransectTopiaDao transectDAO; - protected TransitDAO transitDAO; + protected TransitTopiaDao transitDAO; - protected DataAcquisitionDAO dataAcquisitionDAO; + protected DataAcquisitionTopiaDao dataAcquisitionDAO; - protected DataProcessingDAO dataProcessingDAO; + protected DataProcessingTopiaDao dataProcessingDAO; - protected CellDAO cellDAO; + protected CellTopiaDao cellDAO; - protected DataDAO dataDAO; + protected DataTopiaDao dataDAO; - protected OperationDAO operationDAO; + protected OperationTopiaDao operationDAO; - protected OperationMetadataValueDAO operationMetadataValueDAO; + protected OperationMetadataValueTopiaDao operationMetadataValueDAO; - protected GearMetadataValueDAO gearMetadataValueDAO; + protected GearMetadataValueTopiaDao gearMetadataValueDAO; - protected SampleDAO sampleDAO; + protected SampleTopiaDao sampleDAO; - protected SampleDataDAO sampleDataDAO; + protected SampleDataTopiaDao sampleDataDAO; - protected CategoryDAO categoryDAO; + protected CategoryTopiaDao categoryDAO; - protected EchotypeDAO echotypeDAO; + protected EchotypeTopiaDao echotypeDAO; - protected LengthAgeKeyDAO lengthAgeKeyDAO; + protected LengthAgeKeyTopiaDao lengthAgeKeyDAO; - protected LengthWeightKeyDAO lengthWeightKeyDAO; + protected LengthWeightKeyTopiaDao lengthWeightKeyDAO; - protected ResultDAO resultDAO; + protected ResultTopiaDao resultDAO; + @Inject + private RemoveDataService removeDataService; + @Override protected FakeEchoBaseServiceContext initContext() { return new FakeEchoBaseServiceContext(fixtures.IMPORT_DATA_ECHOBASE_NO_DATA()); } - TopiaEchoBasePersistenceContext persistenceContext; + EchoBaseUserPersistenceContext persistenceContext; @Override @Before public void setUp() throws Exception { super.setUp(); - persistenceContext = serviceContext.getEchoBasePersistenceContext(); + persistenceContext = serviceContext.getEchoBaseUserPersistenceContext(); - voyageDao = persistenceContext.getVoyageDAO(); - transectDAO = persistenceContext.getTransectDAO(); - transitDAO = persistenceContext.getTransitDAO(); - dataAcquisitionDAO = persistenceContext.getDataAcquisitionDAO(); - dataProcessingDAO = persistenceContext.getDataProcessingDAO(); + voyageDAO = persistenceContext.getVoyageDao(); + transectDAO = persistenceContext.getTransectDao(); + transitDAO = persistenceContext.getTransitDao(); + dataAcquisitionDAO = persistenceContext.getDataAcquisitionDao(); + dataProcessingDAO = persistenceContext.getDataProcessingDao(); - cellDAO = persistenceContext.getCellDAO(); - dataDAO = persistenceContext.getDataDAO(); - operationDAO = persistenceContext.getOperationDAO(); - operationMetadataValueDAO = persistenceContext.getOperationMetadataValueDAO(); - gearMetadataValueDAO = persistenceContext.getGearMetadataValueDAO(); - sampleDAO = persistenceContext.getSampleDAO(); - sampleDataDAO = persistenceContext.getSampleDataDAO(); + cellDAO = persistenceContext.getCellDao(); + dataDAO = persistenceContext.getDataDao(); + operationDAO = persistenceContext.getOperationDao(); + operationMetadataValueDAO = persistenceContext.getOperationMetadataValueDao(); + gearMetadataValueDAO = persistenceContext.getGearMetadataValueDao(); + sampleDAO = persistenceContext.getSampleDao(); + sampleDataDAO = persistenceContext.getSampleDataDao(); - echotypeDAO = persistenceContext.getEchotypeDAO(); - lengthAgeKeyDAO = persistenceContext.getLengthAgeKeyDAO(); - lengthWeightKeyDAO = persistenceContext.getLengthWeightKeyDAO(); - categoryDAO = persistenceContext.getCategoryDAO(); - resultDAO = persistenceContext.getResultDAO(); + echotypeDAO = persistenceContext.getEchotypeDao(); + lengthAgeKeyDAO = persistenceContext.getLengthAgeKeyDao(); + lengthWeightKeyDAO = persistenceContext.getLengthWeightKeyDao(); + categoryDAO = persistenceContext.getCategoryDao(); + resultDAO = persistenceContext.getResultDao(); //create imports for voyage 1 createCommonVoyageImportV1(); @@ -330,11 +334,9 @@ RemoveDataConfiguration conf = new RemoveDataConfiguration(); conf.setImportLogIds(new String[]{importId}); - RemoveDataService service = getRemoveDataService(); - EchoBaseUser fakeUser = createFakeUser(); - service.removeImport(conf, fakeUser); + removeDataService.removeImport(conf, fakeUser); for (String id : shoudDeleteIds) { existingId.remove(id); @@ -361,7 +363,7 @@ } private <E extends TopiaEntity> E getFirstEntity(Class<E> entityType) { - List<E> entities = persistenceContext.getDAO(entityType).findAll(); + List<E> entities = persistenceContext.getDao(entityType).findAll(); Assert.assertTrue(CollectionUtils.isNotEmpty(entities)); return entities.get(0); } @@ -370,15 +372,15 @@ TopiaIdFactory topiaIdFactory = persistenceContext.getTopiaIdFactory(); Class entityType = topiaIdFactory.getClassName(id); - TopiaDAO<E> dao = persistenceContext.getDAO(entityType); - E entity = dao.findByTopiaId(id); + TopiaDao<E> dao = persistenceContext.getDao(entityType); + E entity = dao.forTopiaIdEquals(id).findAnyOrNull(); return entity; } private void createCommonVoyageImportV1() { // create voyage - Voyage voyage = voyageDao.create( + Voyage voyage = voyageDAO.create( TopiaEntity.PROPERTY_TOPIA_ID, voyage1Id, Voyage.PROPERTY_MISSION, getFirstEntity(Mission.class), Voyage.PROPERTY_NAME, "voyage1", @@ -390,7 +392,7 @@ Voyage.PROPERTY_DATUM, "voyage1Datum" ); - persistenceContext.commitTransaction(); + persistenceContext.commit(); importCommonVoyage1Id = createImport( CommonAllImportService.class, @@ -404,7 +406,7 @@ private void createCommonVoyageImportV2() { // create voyage - Voyage voyage = voyageDao.create( + Voyage voyage = voyageDAO.create( TopiaEntity.PROPERTY_TOPIA_ID, voyage2Id, Voyage.PROPERTY_MISSION, getFirstEntity(Mission.class), Voyage.PROPERTY_NAME, "voyage2", @@ -416,7 +418,7 @@ Voyage.PROPERTY_DATUM, "voyage2Datum" ); - persistenceContext.commitTransaction(); + persistenceContext.commit(); importCommonVoyage2Id = createImport( CommonAllImportService.class, @@ -444,7 +446,7 @@ ); voyage.addTransit(transit); - persistenceContext.commitTransaction(); + persistenceContext.commit(); importCommonTransit1Id = createImport( CommonAllImportService.class, @@ -472,7 +474,7 @@ ); voyage.addTransit(transit); - persistenceContext.commitTransaction(); + persistenceContext.commit(); importCommonTransit2Id = createImport( CommonAllImportService.class, @@ -508,7 +510,7 @@ ); transit.addTransect(transect2); - persistenceContext.commitTransaction(); + persistenceContext.commit(); importCommonTransect1Id = createImport( CommonAllImportService.class, @@ -543,7 +545,7 @@ ); transit.addTransect(transect2); - persistenceContext.commitTransaction(); + persistenceContext.commit(); importCommonTransect2Id = createImport( CommonAllImportService.class, @@ -873,7 +875,7 @@ importLog.addImportId(importId.getTopiaId()); } - persistenceContext.commitTransaction(); + persistenceContext.commit(); String importId = importLog.getTopiaId(); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CatchesRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CatchesRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CatchesRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.CatchesRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test{@link RemoveDataService} with {@link CatchesRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.CommonAllRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test{@link RemoveDataService} with {@link CommonAllRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.CommonTransectRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test{@link RemoveDataService} with {@link CommonTransectRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransitRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransitRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransitRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.CommonTransitRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test{@link RemoveDataService} with {@link CommonTransitRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.CommonVoyageRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test{@link RemoveDataService} with {@link CommonVoyageRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/OperationRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/OperationRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/OperationRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.OperationRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test{@link RemoveDataService} with {@link OperationRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultEsduRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultEsduRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultEsduRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.ResultEsduRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test{@link RemoveDataService} with {@link ResultEsduRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultMapRemoveFishDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultMapRemoveFishDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultMapRemoveFishDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.ResultMapFishRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test {@link RemoveDataService} with {@link ResultMapFishRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultMapRemoveOtherDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultMapRemoveOtherDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultMapRemoveOtherDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.ResultMapOtherRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test {@link RemoveDataService} with {@link ResultMapOtherRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultRegionRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultRegionRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultRegionRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.ResultRegionRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test{@link RemoveDataService} with {@link ResultRegionRemoveDataStrategy}. Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultVoyageRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultVoyageRemoveDataServiceTest.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/ResultVoyageRemoveDataServiceTest.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,7 +26,7 @@ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; import fr.ifremer.echobase.services.service.removedata.strategy.ResultVoyageRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; /** * Test{@link RemoveDataService} with {@link ResultVoyageRemoveDataStrategy}. Modified: trunk/echobase-ui/pom.xml =================================================================== --- trunk/echobase-ui/pom.xml 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/pom.xml 2013-12-22 00:29:17 UTC (rev 925) @@ -47,9 +47,6 @@ <resources> <resource> <directory>src/main/resources</directory> - <!--includes> - <include>**/*</include> - </includes--> <excludes> <exclude>echobase.properties</exclude> <exclude>struts.xml</exclude> @@ -65,12 +62,6 @@ </includes> </resource> - <!--resource> - <directory>src/main/env/${env}/resources</directory> - <includes> - <include>*.properties</include> - </includes> - </resource--> </resources> <plugins> @@ -259,9 +250,14 @@ <artifactId>jetty-runner</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> + </dependency--> + + <dependency> + <groupId>javax</groupId> + <artifactId>javaee-api</artifactId> </dependency> <!-- database dependencies --> Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationContext.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,12 +30,15 @@ import com.opensymphony.xwork2.ActionContext; import fr.ifremer.echobase.config.EchoBaseConfiguration; import fr.ifremer.echobase.entities.DriverType; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaApplicationContext; +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaPersistenceContext; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.TopiaEchoBaseInternalPersistenceContext; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; import fr.ifremer.echobase.persistence.EchoBaseDbMeta; import fr.ifremer.echobase.persistence.EchoBaseEntityHelper; -import fr.ifremer.echobase.persistence.EchobaseTopiaContexts; +import fr.ifremer.echobase.persistence.EchobaseTopiaApplicationContexts; import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext; import fr.ifremer.echobase.services.EchoBaseServiceContext; import fr.ifremer.echobase.services.service.UserService; @@ -52,8 +55,7 @@ import org.apache.log4j.PropertyConfigurator; import org.nuiton.i18n.I18n; import org.nuiton.i18n.init.DefaultI18nInitializer; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.RecursiveProperties; import org.nuiton.util.SortedProperties; import org.nuiton.util.converter.ConverterUtil; @@ -119,7 +121,7 @@ protected EchoBaseDbMeta dbMeta; /** Root context for the internal database. */ - protected TopiaContext internalRootContext; + protected EchoBaseInternalTopiaApplicationContext internalTopiaApplicationContext; /** * Flag setted to true when internal db was just created (should then @@ -129,18 +131,6 @@ */ protected boolean defaultUsersCreated; -// /** -// * A simple cache of spatial data. -// * -// * @since 2.2 -// */ -// protected final SpatialDataCache spatialDataCache; - - public EchoBaseApplicationContext() { - -// spatialDataCache = new SpatialDataCache(); - } - public Set<EchoBaseSession> getEchoBaseSessions() { return sessions; } @@ -188,7 +178,7 @@ ConvertUtils.register(new FloatConverter(), Float.class); // initialize configuration - EchoBaseConfiguration configuration = new EchoBaseConfiguration(); + configuration = new EchoBaseConfiguration(); try { initLog(configuration); @@ -202,13 +192,11 @@ } // initialize internal root context - TopiaContext internalRootContext = - EchobaseTopiaContexts.newInternalDb( + internalTopiaApplicationContext = + EchobaseTopiaApplicationContexts.newInternalDb( configuration.getInternalDbDirectory()); - setConfiguration(configuration); - setDbMeta(EchoBaseDbMeta.newDbMeta()); - setInternalRootContext(internalRootContext); + dbMeta = EchoBaseDbMeta.newDbMeta(); // create a service context EchoBaseServiceContext serviceContext = @@ -222,7 +210,7 @@ // extract files to library directory if required try { - extractFiles(serviceContext); + extractFiles(); } catch (IOException e) { throw new TopiaException("Could not extract files (drivers + embedded war)", e); } @@ -236,8 +224,8 @@ return dbMeta; } - public TopiaContext getInternalRootContext() { - return internalRootContext; + public EchoBaseInternalTopiaApplicationContext getInternalTopiaApplicationContext() { + return internalTopiaApplicationContext; } public boolean isDefaultUsersCreated() { @@ -245,8 +233,9 @@ } public EchoBaseServiceContext newServiceContext(Locale locale, - TopiaContext topiaInternalContext, - TopiaContext topiaContext) { + EchoBaseInternalPersistenceContext topiaInternalContext, + EchoBaseUserPersistenceContext topiaUserContext, + EchoBaseUserTopiaApplicationContext topiaApplicationContext) { EchoBaseServiceContext newServiceContext = DefaultEchoBaseServiceContext.newContext( @@ -254,26 +243,19 @@ configuration, dbMeta); - TopiaEchoBaseInternalPersistenceContext internalPersistenceContext = - new TopiaEchoBaseInternalPersistenceContext(topiaInternalContext); + newServiceContext.setEchoBaseInternalPersistenceContext(topiaInternalContext); + newServiceContext.setEchoBaseUserApplicationContext(topiaApplicationContext); + newServiceContext.setEchoBaseUserPersistenceContext(topiaUserContext); - newServiceContext.setEchoBaseInternalPersistenceContext( - internalPersistenceContext); - - TopiaEchoBasePersistenceContext persistenceContext = - new TopiaEchoBasePersistenceContext(topiaContext); - - newServiceContext.setEchoBasePersistenceContext(persistenceContext); - return newServiceContext; } public void close() { try { - if (internalRootContext != null) { + if (internalTopiaApplicationContext != null) { // release internal db - EchoBaseEntityHelper.releaseRootContext(internalRootContext); + EchoBaseEntityHelper.releaseApplicationContext(internalTopiaApplicationContext); } } finally { @@ -294,23 +276,6 @@ } } - public void setDbMeta(EchoBaseDbMeta dbMeta) { - this.dbMeta = dbMeta; - } - - public void setInternalRootContext(TopiaContext internalRootContext) { - this.internalRootContext = internalRootContext; - } - - public void setDefaultUsersCreated(boolean defaultUsersCreated) { - this.defaultUsersCreated = defaultUsersCreated; - } - - public void setConfiguration(EchoBaseConfiguration configuration) { - this.configuration = configuration; - } - - /** * Init the internal database, says : * <ul> @@ -322,25 +287,20 @@ */ protected void initInternalDatabase(EchoBaseServiceContext serviceContext) throws TopiaException { - EchoBaseConfiguration configuration = this.getConfiguration(); Preconditions.checkNotNull(configuration); - - EchoBaseDbMeta dbMeta = getDbMeta(); Preconditions.checkNotNull(dbMeta); + Preconditions.checkNotNull(internalTopiaApplicationContext); - TopiaContext rootContext = this.getInternalRootContext(); - Preconditions.checkNotNull(rootContext); - if (configuration.isUpdateSchema()) { if (log.isInfoEnabled()) { log.info("Will update schema..."); } - rootContext.updateSchema(); + internalTopiaApplicationContext.updateSchema(); } - TopiaContext tx = rootContext.beginTransaction(); + EchoBaseInternalTopiaPersistenceContext tx = internalTopiaApplicationContext.newPersistenceContext(); try { - serviceContext.setEchoBaseInternalPersistenceContext(new TopiaEchoBaseInternalPersistenceContext(tx)); + serviceContext.setEchoBaseInternalPersistenceContext(tx); UserService service = serviceContext.newService(UserService.class); @@ -424,10 +384,8 @@ } } - protected void extractFiles(EchoBaseServiceContext serviceContext) throws IOException { + protected void extractFiles() throws IOException { - EchoBaseConfiguration configuration = serviceContext.getConfiguration(); - // copy drivers File libDirectory = configuration.getLibDirectory(); for (DriverType driverType : DriverType.values()) { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseInternalDbTransactionFilter.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,11 +24,13 @@ package fr.ifremer.echobase.ui; import com.opensymphony.xwork2.ActionContext; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaApplicationContext; +import fr.ifremer.echobase.entities.EchoBaseInternalTopiaPersistenceContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.StrutsStatics; -import org.nuiton.topia.TopiaContext; -import org.nuiton.web.filter.TopiaTransactionFilter; +import org.nuiton.web.filter.TypedTopiaTransactionFilter; import javax.servlet.FilterConfig; import javax.servlet.ServletContext; @@ -42,18 +44,22 @@ * @author tchemit <chemit@codelutin.com> * @since 0.1 */ -public class EchoBaseInternalDbTransactionFilter extends TopiaTransactionFilter { +public class EchoBaseInternalDbTransactionFilter extends TypedTopiaTransactionFilter<EchoBaseInternalPersistenceContext> { /** Logger. */ private static final Log log = LogFactory.getLog(EchoBaseInternalDbTransactionFilter.class); - public static TopiaContext getTransaction(ActionContext context) { + public static EchoBaseInternalPersistenceContext getPersistenceContext(ActionContext context) { HttpServletRequest request = (HttpServletRequest) context.get(StrutsStatics.HTTP_REQUEST); - return TopiaTransactionFilter.getTransaction(request); + return EchoBaseInternalDbTransactionFilter.getPersistenceContext(request); } + public EchoBaseInternalDbTransactionFilter() { + super(EchoBaseInternalPersistenceContext.class); + } + protected ServletContext servletContext; @Override @@ -64,13 +70,13 @@ } @Override - protected TopiaContext beginTransaction(ServletRequest request) { + protected EchoBaseInternalPersistenceContext beginTransaction(ServletRequest request) { EchoBaseApplicationContext applicationContext = EchoBaseApplicationContext.getApplicationContext(servletContext); - TopiaContext rootContext = applicationContext.getInternalRootContext(); - TopiaContext transaction = rootContext.beginTransaction(); + EchoBaseInternalTopiaApplicationContext rootContext = applicationContext.getInternalTopiaApplicationContext(); + EchoBaseInternalTopiaPersistenceContext transaction = rootContext.newPersistenceContext(); if (log.isDebugEnabled()) { log.debug("Starts a new echo transaction " + transaction); } @@ -108,7 +114,7 @@ // } // // try { -// Transaction tx = transaction.getHibernateSession().getTransaction(); +// Transaction tx = transaction.getHibernateSession().getPersistenceContext(); // if (!tx.wasCommitted() && !tx.wasRolledBack()) { // if (log.isDebugEnabled()) { // log.debug("rollback transaction!"); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,15 +27,15 @@ import com.google.common.collect.Sets; import com.opensymphony.xwork2.ActionContext; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; import fr.ifremer.echobase.persistence.EchoBaseEntityHelper; -import fr.ifremer.echobase.persistence.EchobaseTopiaContexts; +import fr.ifremer.echobase.persistence.EchobaseTopiaApplicationContexts; import fr.ifremer.echobase.persistence.JdbcConfiguration; import fr.ifremer.echobase.services.AbstractEchobaseActionConfiguration; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaNotFoundException; +import org.nuiton.topia.persistence.TopiaNotFoundException; import javax.servlet.http.HttpSession; import java.io.Closeable; @@ -51,7 +51,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.1 */ -public class EchoBaseSession implements Closeable { +public class EchoBaseSession implements Closeable, Serializable { /** Logger. */ private static final Log log = LogFactory.getLog(EchoBaseSession.class); @@ -63,20 +63,19 @@ private static final String PROPERTY_USER = "echobaseUser"; /** Key to set root context of working db selected by user (if any). */ - private static final String PROPERTY_WORKING_DB_CONFIGURATION = "workingDbConfiguration"; + private static final String PROPERTY_USER_DB_CONFIGURATION = "userDbConfiguration"; /** Key to set root context of working db selected by user (if any). */ - private static final String PROPERTY_WORKING_DB_ROOT_CONTEXT = "workingDbRootContext"; + private static final String PROPERTY_USER_DB_APPLICATION_CONTEXT = "userDbApplicationContext"; - /** Key to set spatial data list. */ - private static final String PROPERTY_SPATIAL_DATA = "spatialData"; - public static final String SESSION_TOKEN_MESSAGES = "messages"; public static final String SESSION_TOKEN_ERRORS = "errors"; public static final String SESSION_TOKEN_WARNINGS = "warnings"; + private static final long serialVersionUID = 1; + /** To store all properties in this session. */ protected Map<String, Object> store; @@ -143,15 +142,15 @@ } public JdbcConfiguration getWorkingDbConfiguration() { - return get(PROPERTY_WORKING_DB_CONFIGURATION, JdbcConfiguration.class); + return get(PROPERTY_USER_DB_CONFIGURATION, JdbcConfiguration.class); } - public TopiaContext getWorkingDbRootContext() { - return get(PROPERTY_WORKING_DB_ROOT_CONTEXT, TopiaContext.class); + public EchoBaseUserTopiaApplicationContext getUserDbApplicationContext() { + return get(PROPERTY_USER_DB_APPLICATION_CONTEXT, EchoBaseUserTopiaApplicationContext.class); } public boolean isWorkingDbSelected() { - return contains(PROPERTY_WORKING_DB_CONFIGURATION); + return contains(PROPERTY_USER_DB_CONFIGURATION); } /** @@ -165,21 +164,22 @@ * @param jdbcConfiguration the connection configuration to use * @throws TopiaNotFoundException if could not create root context */ - public void initWorkingDb(JdbcConfiguration jdbcConfiguration, boolean createSchema) throws TopiaNotFoundException { + public void initUserDb(JdbcConfiguration jdbcConfiguration, + boolean createSchema) throws TopiaNotFoundException { // close any previous db - releaseWorkingDb(); + releaseUserDb(); // creates a new topia root context from configuration - TopiaContext rootContext = - EchobaseTopiaContexts.newWorkingDb( + EchoBaseUserTopiaApplicationContext applicationContext = + EchobaseTopiaApplicationContexts.newUserDb( jdbcConfiguration, createSchema); // keep configuration is session - set(PROPERTY_WORKING_DB_CONFIGURATION, jdbcConfiguration); + set(PROPERTY_USER_DB_CONFIGURATION, jdbcConfiguration); // store it in session - set(PROPERTY_WORKING_DB_ROOT_CONTEXT, rootContext); + set(PROPERTY_USER_DB_APPLICATION_CONTEXT, applicationContext); if (log.isInfoEnabled()) { log.info("User database initialized at " + jdbcConfiguration.getUrl()); @@ -198,16 +198,16 @@ remove(configurationType.getName()); } - public void releaseWorkingDb() { + public void releaseUserDb() { if (isWorkingDbSelected()) { try { - TopiaContext rootContext = getWorkingDbRootContext(); - EchoBaseEntityHelper.releaseRootContext(rootContext); + EchoBaseUserTopiaApplicationContext applicationContext = getUserDbApplicationContext(); + EchoBaseEntityHelper.releaseApplicationContext(applicationContext); } finally { - remove(PROPERTY_WORKING_DB_CONFIGURATION); - remove(PROPERTY_WORKING_DB_ROOT_CONTEXT); + remove(PROPERTY_USER_DB_CONFIGURATION); + remove(PROPERTY_USER_DB_APPLICATION_CONTEXT); } } } @@ -239,7 +239,7 @@ } public <T extends Serializable> void putDynamicSetData(String token, Set<T> data) { - getDynamicData().put(token, data); + getDynamicData().put(token, (Serializable) data); if (log.isDebugEnabled()) { log.debug("Dynamic attributes size : " + getDynamicData().size()); } @@ -366,7 +366,7 @@ log.info("Close user session for [" + getUser().getEmail() + "]"); } try { - releaseWorkingDb(); + releaseUserDb(); } finally { Set<String> keys = Sets.newHashSet(store.keySet()); Copied: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseUserDbTransactionFilter.java (from rev 924, trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseWorkingDbTransactionFilter.java) =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseUserDbTransactionFilter.java (rev 0) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseUserDbTransactionFilter.java 2013-12-22 00:29:17 UTC (rev 925) @@ -0,0 +1,89 @@ +package fr.ifremer.echobase.ui; + +/* + * #%L + * EchoBase :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.google.common.base.Preconditions; +import com.opensymphony.xwork2.ActionContext; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.struts2.StrutsStatics; +import org.nuiton.web.filter.TypedTopiaTransactionFilter; + +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +/** + * To inject a transaction coming from the user connected working db. + * <p/> + * If user has no working db selected, then do nothing. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.1 + */ +public class EchoBaseUserDbTransactionFilter extends TypedTopiaTransactionFilter<EchoBaseUserPersistenceContext> { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(EchoBaseUserDbTransactionFilter.class); + + public static final String USER_TRANSACTION = "userTransaction"; + + public EchoBaseUserDbTransactionFilter() { + super(EchoBaseUserPersistenceContext.class); + } + + public static EchoBaseUserPersistenceContext getPersistenceContext(ActionContext context) { + HttpServletRequest request = (HttpServletRequest) + context.get(StrutsStatics.HTTP_REQUEST); + return (EchoBaseUserPersistenceContext) request.getAttribute(USER_TRANSACTION); + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + super.init(filterConfig); + setRequestAttributeName(USER_TRANSACTION); + } + + @Override + public EchoBaseUserPersistenceContext beginTransaction(ServletRequest request) { + + HttpSession session = ((HttpServletRequest) request).getSession(); + Preconditions.checkNotNull(session); + EchoBaseSession userSession = EchoBaseSession.getEchoBaseSession(session); + Preconditions.checkNotNull(userSession); + EchoBaseUserTopiaApplicationContext rootContext = userSession.getUserDbApplicationContext(); + Preconditions.checkNotNull(rootContext); + EchoBaseUserPersistenceContext transaction = rootContext.newPersistenceContext(); + if (log.isDebugEnabled()) { + log.debug("Starts a new working db transaction " + transaction); + } + return transaction; + } + +} \ No newline at end of file Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseWorkingDbTransactionFilter.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseWorkingDbTransactionFilter.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseWorkingDbTransactionFilter.java 2013-12-22 00:29:17 UTC (rev 925) @@ -1,84 +0,0 @@ -package fr.ifremer.echobase.ui; - -/* - * #%L - * EchoBase :: UI - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 - 2012 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import com.google.common.base.Preconditions; -import com.opensymphony.xwork2.ActionContext; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts2.StrutsStatics; -import org.nuiton.topia.TopiaContext; -import org.nuiton.web.filter.TopiaTransactionFilter; - -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -/** - * To inject a transaction coming from the user connected working db. - * <p/> - * If user has no working db selected, then do nothing. - * - * @author tchemit <chemit@codelutin.com> - * @since 1.1 - */ -public class EchoBaseWorkingDbTransactionFilter extends TopiaTransactionFilter { - - /** Logger. */ - private static final Log log = - LogFactory.getLog(EchoBaseWorkingDbTransactionFilter.class); - - public static final String USER_TRANSACTION = "userTransaction"; - - public static TopiaContext getTransaction(ActionContext context) { - HttpServletRequest request = (HttpServletRequest) - context.get(StrutsStatics.HTTP_REQUEST); - return (TopiaContext) request.getAttribute(USER_TRANSACTION); - } - - @Override - public void init(FilterConfig filterConfig) throws ServletException { - super.init(filterConfig); - setRequestAttributeName(USER_TRANSACTION); - } - - @Override - public TopiaContext beginTransaction(ServletRequest request) { - - HttpSession session = ((HttpServletRequest) request).getSession(); - Preconditions.checkNotNull(session); - EchoBaseSession userSession = EchoBaseSession.getEchoBaseSession(session); - Preconditions.checkNotNull(userSession); - TopiaContext rootContext = userSession.getWorkingDbRootContext(); - Preconditions.checkNotNull(rootContext); - TopiaContext transaction = rootContext.beginTransaction(); - if (log.isDebugEnabled()) { - log.debug("Starts a new working db transaction " + transaction); - } - return transaction; - } - -} \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractConfigureAction.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractConfigureAction.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractConfigureAction.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,10 +26,11 @@ import com.opensymphony.xwork2.interceptor.annotations.InputConfig; import fr.ifremer.echobase.services.AbstractEchobaseActionConfiguration; import fr.ifremer.echobase.services.service.DecoratorService; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; import java.io.IOException; /** @@ -105,15 +106,9 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } - + @Inject protected transient DecoratorService decoratorService; - - public void setDecoratorService(DecoratorService decoratorService) { - this.decoratorService = decoratorService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractWaitAndExecAction.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractWaitAndExecAction.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractWaitAndExecAction.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,12 +25,12 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.Preparable; -import fr.ifremer.echobase.entities.TopiaEchoBasePersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; import fr.ifremer.echobase.persistence.EchoBaseEntityHelper; import fr.ifremer.echobase.services.AbstractEchobaseActionConfiguration; import fr.ifremer.echobase.services.EchoBaseService; import org.apache.commons.lang3.exception.ExceptionUtils; -import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.persistence.internal.AbstractTopiaPersistenceContext; import java.io.IOException; @@ -151,11 +151,11 @@ // we must use a standalone transaction since it will pass through // in more than one request - TopiaContext tx = EchoBaseEntityHelper.newTransactionFromRootContext( - getServiceContext().getEchoBasePersistenceContext().getContext()); + EchoBaseUserPersistenceContext tx = + getServiceContext().getEchoBaseUserApplicationContext().newPersistenceContext(); try { - getServiceContext().setEchoBasePersistenceContext(new TopiaEchoBasePersistenceContext(tx)); + getServiceContext().setEchoBaseUserPersistenceContext(tx); S service = getServiceContext().newService(serviceType); @@ -167,7 +167,7 @@ model.endAction(); - EchoBaseEntityHelper.closeConnection(tx); + EchoBaseEntityHelper.closeConnection((AbstractTopiaPersistenceContext) tx); } return SUCCESS; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java 2013-12-22 00:29:17 UTC (rev 925) @@ -31,6 +31,7 @@ import org.apache.commons.lang3.StringUtils; import org.nuiton.web.struts2.BaseAction; +import javax.inject.Inject; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; @@ -104,9 +105,11 @@ //------------------------------------------------------------------------// /** EchoBase Application context. */ + @Inject private transient EchoBaseApplicationContext applicationContext; /** EchoBase User session. */ + @Inject private transient EchoBaseSession echoBaseSession; /** @@ -114,19 +117,20 @@ * * @since 1.0 */ + @Inject private transient EchoBaseServiceContext serviceContext; - public void setApplicationContext(EchoBaseApplicationContext applicationContext) { - this.applicationContext = applicationContext; - } +// public void setApplicationContext(EchoBaseApplicationContext applicationContext) { +// this.applicationContext = applicationContext; +// } - public void setEchoBaseSession(EchoBaseSession echoBaseSession) { - this.echoBaseSession = echoBaseSession; - } +// public void setEchoBaseSession(EchoBaseSession echoBaseSession) { +// this.echoBaseSession = echoBaseSession; +// } - public void setServiceContext(EchoBaseServiceContext serviceContext) { - this.serviceContext = serviceContext; - } +// public void setServiceContext(EchoBaseServiceContext serviceContext) { +// this.serviceContext = serviceContext; +// } public EchoBaseApplicationContext getEchoBaseApplicationContext() { Preconditions.checkNotNull("No applicationContext is your action " + this); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/AbstractLoadPage.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,13 +24,14 @@ package fr.ifremer.echobase.ui.actions.dbeditor; import com.google.common.collect.Maps; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.services.service.DbEditorService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.nuiton.topia.persistence.metadata.ColumnMeta; import org.nuiton.topia.persistence.metadata.DbMeta; import org.nuiton.topia.persistence.metadata.TableMeta; +import javax.inject.Inject; import java.util.List; import java.util.Map; @@ -46,13 +47,13 @@ private static final long serialVersionUID = 1L; /** Type of entity to load. */ - protected EchoBaseEntityEnum entityType; + protected EchoBaseUserEntityEnum entityType; - public void setEntityType(EchoBaseEntityEnum entityType) { + public void setEntityType(EchoBaseUserEntityEnum entityType) { this.entityType = entityType; } - public EchoBaseEntityEnum getEntityType() { + public EchoBaseUserEntityEnum getEntityType() { return entityType; } @@ -64,7 +65,7 @@ } /** Metas of the table. */ - protected TableMeta<EchoBaseEntityEnum> tableMeta; + protected TableMeta<EchoBaseUserEntityEnum> tableMeta; public List<ColumnMeta> getColumnMetas() { return tableMeta.getColumns(); @@ -72,8 +73,8 @@ public void load() throws Exception { entityTypes = Maps.newTreeMap(); - DbMeta<EchoBaseEntityEnum> dbMeta = getEchoBaseApplicationContext().getDbMeta(); - for (TableMeta<EchoBaseEntityEnum> meta : dbMeta) { + DbMeta<EchoBaseUserEntityEnum> dbMeta = getEchoBaseApplicationContext().getDbMeta(); + for (TableMeta<EchoBaseUserEntityEnum> meta : dbMeta) { // keep only editable metas if (dbMeta.isEditable(meta)) { @@ -96,10 +97,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient DbEditorService dbEditorService; - - public void setDbEditorService(DbEditorService dbEditorService) { - this.dbEditorService = dbEditorService; - } - } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,7 +23,7 @@ */ package fr.ifremer.echobase.ui.actions.dbeditor; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.services.service.DbEditorService; import fr.ifremer.echobase.services.service.exportdb.ExportService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; @@ -31,6 +31,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.metadata.TableMeta; +import javax.inject.Inject; import java.io.ByteArrayInputStream; import java.io.InputStream; @@ -48,9 +49,9 @@ private static final Log log = LogFactory.getLog(ImportTable.class); /** Type of entity to export. */ - protected EchoBaseEntityEnum entityType; + protected EchoBaseUserEntityEnum entityType; - public void setEntityType(EchoBaseEntityEnum entityType) { + public void setEntityType(EchoBaseUserEntityEnum entityType) { this.entityType = entityType; } @@ -96,7 +97,7 @@ @Override public String execute() throws Exception { - TableMeta<EchoBaseEntityEnum> table = dbEditorService.getTableMeta(entityType); + TableMeta<EchoBaseUserEntityEnum> table = dbEditorService.getTableMeta(entityType); String content = exportService.exportData(table, exportAsSeen); if (log.isDebugEnabled()) { @@ -113,15 +114,9 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient DbEditorService dbEditorService; - public void setDbEditorService(DbEditorService dbEditorService) { - this.dbEditorService = dbEditorService; - } - + @Inject protected transient ExportService exportService; - - public void setExportService(ExportService exportService) { - this.exportService = exportService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntities.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,13 +28,13 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.services.service.DbEditorService; import fr.ifremer.echobase.services.service.DecoratorService; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.ui.actions.AbstractJSONPaginedAction; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -44,6 +44,7 @@ import org.nuiton.topia.persistence.pager.FilterRuleGroupOperator; import org.nuiton.topia.persistence.pager.FilterRuleOperator; +import javax.inject.Inject; import java.util.Arrays; import java.util.Collection; import java.util.Map; @@ -68,9 +69,9 @@ } /** Type of entity to load. */ - protected EchoBaseEntityEnum entityType; + protected EchoBaseUserEntityEnum entityType; - public void setEntityType(EchoBaseEntityEnum entityType) { + public void setEntityType(EchoBaseUserEntityEnum entityType) { this.entityType = entityType; } @@ -106,13 +107,13 @@ public String entityModificationLogs() throws Exception { - entityType = EchoBaseEntityEnum.EntityModificationLog; + entityType = EchoBaseUserEntityEnum.EntityModificationLog; execute(); return SUCCESS; } public String entityImportLogs() throws Exception { - entityType = EchoBaseEntityEnum.ImportLog; + entityType = EchoBaseUserEntityEnum.ImportLog; if (StringUtils.isNotBlank(voyageId)) { @@ -132,14 +133,14 @@ String importTypeToString = importTypes.get(importType); row.put(ImportLog.PROPERTY_IMPORT_TYPE, importTypeToString); - Voyage voyage = workingDbPersistenceService.getVoyage((String) row.get(ImportLog.PROPERTY_VOYAGE_ID)); + Voyage voyage = userDbPersistenceService.getVoyage((String) row.get(ImportLog.PROPERTY_VOYAGE_ID)); decoratorService.decorateForeignKey(row, ImportLog.PROPERTY_VOYAGE_ID, voyage, null); } return SUCCESS; } public String dashboardImportLogs() throws Exception { - entityType = EchoBaseEntityEnum.Voyage; + entityType = EchoBaseUserEntityEnum.Voyage; execute(); @@ -147,7 +148,7 @@ getLocale(), ImportLog.class, DecoratorService.DATE_ONLY); Multimap<String, ImportLog> importLogsByVoyage = Multimaps.index( - workingDbPersistenceService.getImportLogs(), + userDbPersistenceService.getImportLogs(), EchoBaseFunctions.IMPORT_LOG_VOYAGE_ID); for (Map row : datas) { @@ -156,7 +157,7 @@ Collection<ImportLog> importLogs = importLogsByVoyage.get(id); - Voyage voyage = workingDbPersistenceService.getVoyage(id); + Voyage voyage = userDbPersistenceService.getVoyage(id); decoratorService.decorateForeignKey(row, "id", voyage, null); @@ -188,21 +189,10 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; - - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } - + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; + @Inject protected transient DbEditorService dbEditorService; - - public void setDbEditorService(DbEditorService dbEditorService) { - this.dbEditorService = dbEditorService; - } - + @Inject protected transient DecoratorService decoratorService; - - public void setDecoratorService(DecoratorService decoratorService) { - this.decoratorService = decoratorService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetEntity.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,12 +24,13 @@ package fr.ifremer.echobase.ui.actions.dbeditor; import com.google.common.collect.Maps; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.services.service.DbEditorService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.nuiton.topia.persistence.metadata.ColumnMeta; import org.nuiton.topia.persistence.metadata.TableMeta; +import javax.inject.Inject; import java.util.List; import java.util.Map; @@ -44,9 +45,9 @@ private static final long serialVersionUID = 1L; /** Type of entity to load. */ - protected EchoBaseEntityEnum entityType; + protected EchoBaseUserEntityEnum entityType; - public void setEntityType(EchoBaseEntityEnum entityType) { + public void setEntityType(EchoBaseUserEntityEnum entityType) { this.entityType = entityType; } @@ -74,7 +75,7 @@ @Override public String execute() throws Exception { - TableMeta<EchoBaseEntityEnum> table = + TableMeta<EchoBaseUserEntityEnum> table = dbEditorService.getTableMeta(entityType); datas = dbEditorService.getData(table, id); @@ -96,10 +97,6 @@ //------------------------------------------------------------------------// //-- Injected objects // //------------------------------------------------------------------------// - + @Inject protected transient DbEditorService dbEditorService; - - public void setDbEditorService(DbEditorService dbEditorService) { - this.dbEditorService = dbEditorService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetForeignEntities.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetForeignEntities.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/GetForeignEntities.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,10 +23,11 @@ */ package fr.ifremer.echobase.ui.actions.dbeditor; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import javax.inject.Inject; import java.util.Map; /** @@ -40,9 +41,9 @@ private static final long serialVersionUID = 1L; /** Type of entity to load. */ - protected EchoBaseEntityEnum entityType; + protected EchoBaseUserEntityEnum entityType; - public void setEntityType(EchoBaseEntityEnum entityType) { + public void setEntityType(EchoBaseUserEntityEnum entityType) { this.entityType = entityType; } @@ -56,7 +57,7 @@ @Override public String execute() throws Exception { - entities = workingDbPersistenceService.loadSortAndDecorate(entityType.getContract()); + entities = userDbPersistenceService.loadSortAndDecorate(entityType.getContract()); return SUCCESS; } @@ -65,9 +66,6 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; - - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,13 +24,14 @@ package fr.ifremer.echobase.ui.actions.dbeditor; import com.opensymphony.xwork2.interceptor.annotations.InputConfig; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.services.service.importdb.ImportService; -import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.logging.Log; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.csv.in.CsvImportResult; +import org.nuiton.topia.service.csv.in.CsvImportResult; +import javax.inject.Inject; import java.io.File; /** @@ -62,11 +63,11 @@ protected String importFileFileName; /** CSV import result */ - private CsvImportResult<EchoBaseEntityEnum> result; + private CsvImportResult<EchoBaseUserEntityEnum> result; private Exception error; - public CsvImportResult<EchoBaseEntityEnum> getResult() { + public CsvImportResult<EchoBaseUserEntityEnum> getResult() { return result; } @@ -156,10 +157,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ImportService importService; - - public void setImportService(ImportService importService) { - this.importService = importService; - } - } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,13 +24,14 @@ package fr.ifremer.echobase.ui.actions.dbeditor; import com.google.common.collect.Maps; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.services.service.DbEditorService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.struts2.interceptor.ParameterAware; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.metadata.TableMeta; +import javax.inject.Inject; import java.util.List; import java.util.Map; @@ -45,13 +46,13 @@ private static final long serialVersionUID = 1L; /** Type of entity to save. */ - protected EchoBaseEntityEnum entityType; + protected EchoBaseUserEntityEnum entityType; - public void setEntityType(EchoBaseEntityEnum entityType) { + public void setEntityType(EchoBaseUserEntityEnum entityType) { this.entityType = entityType; } - public EchoBaseEntityEnum getEntityType() { + public EchoBaseUserEntityEnum getEntityType() { return entityType; } @@ -65,7 +66,7 @@ @Override public String execute() throws Exception { - TableMeta<EchoBaseEntityEnum> tableMeta = + TableMeta<EchoBaseUserEntityEnum> tableMeta = dbEditorService.getTableMeta(entityType); Map<String, String> properties = Maps.newHashMap(); List<String> columnNames = tableMeta.getColumnNames(); @@ -105,10 +106,7 @@ this.parameters = parameters; } + @Inject protected transient DbEditorService dbEditorService; - - public void setDbEditorService(DbEditorService dbEditorService) { - this.dbEditorService = dbEditorService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Configure.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Configure.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Configure.java 2013-12-22 00:29:17 UTC (rev 925) @@ -85,7 +85,7 @@ } model.setWarLocation(warLocation); - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); if (MapUtils.isEmpty(voyages)) { addFlashMessage(_("echobase.info.no.voyagee.found")); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Configure.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Configure.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Configure.java 2013-12-22 00:29:17 UTC (rev 925) @@ -92,7 +92,7 @@ model.setExportDbMode(ExportDbMode.ALL); } - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); } @Override @@ -109,7 +109,7 @@ } if (model.getExportDbMode() == ExportDbMode.ALL) { - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); Set<String> ids = voyages.keySet(); model.setVoyageIds(ids.toArray(new String[ids.size()])); } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/AbstractEditExportQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/AbstractEditExportQuery.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/AbstractEditExportQuery.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,13 +25,13 @@ import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ExportQuery; -import fr.ifremer.echobase.services.service.InternalDbPersistenceService; import fr.ifremer.echobase.services.service.exportquery.ExportQueryService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; import java.util.Map; /** @@ -87,7 +87,7 @@ public String input() throws Exception { // come back here when validation failed - queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class); + queries = exportQueryService.loadSortAndDecorate(ExportQuery.class); EchoBaseUser echoBaseUser = getEchoBaseSession().getUser(); @@ -141,16 +141,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ExportQueryService exportQueryService; - - public void setExportQueryService(ExportQueryService exportQueryService) { - this.exportQueryService = exportQueryService; - } - - protected transient InternalDbPersistenceService internalDbPersistenceService; - - public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) { - this.internalDbPersistenceService = internalDbPersistenceService; - } - } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ConfirmDeleteExportQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ConfirmDeleteExportQuery.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ConfirmDeleteExportQuery.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,6 +29,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; + /** * To confirm delete an export query. * <p/> @@ -73,10 +75,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ExportQueryService exportQueryService; - - public void setExportQueryService(ExportQueryService exportQueryService) { - this.exportQueryService = exportQueryService; - } - } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CreateNewExportQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CreateNewExportQuery.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/CreateNewExportQuery.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,13 +24,13 @@ package fr.ifremer.echobase.ui.actions.exportQuery; import fr.ifremer.echobase.entities.ExportQuery; -import fr.ifremer.echobase.services.service.InternalDbPersistenceService; import fr.ifremer.echobase.services.service.exportquery.ExportQueryNotFoundException; import fr.ifremer.echobase.services.service.exportquery.ExportQueryService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; import java.util.Map; /** @@ -82,7 +82,7 @@ log.info("Will create a new query"); } - queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class); + queries = exportQueryService.loadSortAndDecorate(ExportQuery.class); // new query in progress addFlashMessage(_("echobase.info.new.sqlQuery.inprogress")); @@ -94,15 +94,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ExportQueryService exportQueryService; - - public void setExportQueryService(ExportQueryService exportQueryService) { - this.exportQueryService = exportQueryService; - } - - protected transient InternalDbPersistenceService internalDbPersistenceService; - - public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) { - this.internalDbPersistenceService = internalDbPersistenceService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DeleteExportQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DeleteExportQuery.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DeleteExportQuery.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,6 +29,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; + /** * To delete an export query. * <p/> @@ -71,10 +73,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ExportQueryService exportQueryService; - - public void setExportQueryService(ExportQueryService exportQueryService) { - this.exportQueryService = exportQueryService; - } - } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DownloadExportQueryResult.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DownloadExportQueryResult.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/DownloadExportQueryResult.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,6 +27,7 @@ import fr.ifremer.echobase.services.service.exportquery.ExportQueryService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import javax.inject.Inject; import java.io.ByteArrayInputStream; import java.io.InputStream; @@ -99,9 +100,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ExportQueryService exportQueryService; - - public void setExportQueryService(ExportQueryService exportQueryService) { - this.exportQueryService = exportQueryService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/EditExportQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/EditExportQuery.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/EditExportQuery.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,7 +25,6 @@ import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ExportQuery; -import fr.ifremer.echobase.services.service.InternalDbPersistenceService; import fr.ifremer.echobase.services.service.exportquery.ExportQueryNotFoundException; import fr.ifremer.echobase.services.service.exportquery.ExportQueryService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; @@ -33,6 +32,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; import java.util.Map; /** @@ -82,7 +82,7 @@ @Override public String execute() throws ExportQueryNotFoundException { - queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class); + queries = exportQueryService.loadSortAndDecorate(ExportQuery.class); String selectedQueryId = getQuery().getTopiaId(); @@ -131,15 +131,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ExportQueryService exportQueryService; - - public void setExportQueryService(ExportQueryService exportQueryService) { - this.exportQueryService = exportQueryService; - } - - protected transient InternalDbPersistenceService internalDbPersistenceService; - - public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) { - this.internalDbPersistenceService = internalDbPersistenceService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ExportQueryResult.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ExportQueryResult.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ExportQueryResult.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,6 +30,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; + /** * Load export sql result fragment page. * @@ -100,9 +102,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ExportQueryService exportQueryService; - - public void setExportQueryService(ExportQueryService exportQueryService) { - this.exportQueryService = exportQueryService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/GetExportQueryResult.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/GetExportQueryResult.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/GetExportQueryResult.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,6 +27,7 @@ import fr.ifremer.echobase.services.service.exportquery.ExportQueryService; import fr.ifremer.echobase.ui.actions.AbstractJSONPaginedAction; +import javax.inject.Inject; import java.util.Map; /** @@ -69,9 +70,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ExportQueryService exportQueryService; - - public void setExportQueryService(ExportQueryService exportQueryService) { - this.exportQueryService = exportQueryService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/NewLibreOfficeQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/NewLibreOfficeQuery.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/NewLibreOfficeQuery.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,6 +28,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; + /** * To deal with a new libre office request. * @@ -80,10 +82,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient ExportQueryService exportQueryService; - - public void setExportQueryService(ExportQueryService exportQueryService) { - this.exportQueryService = exportQueryService; - } - } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ShowExportQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ShowExportQuery.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ShowExportQuery.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,12 +25,13 @@ import fr.ifremer.echobase.entities.ExportQuery; import fr.ifremer.echobase.entities.ExportQueryImpl; -import fr.ifremer.echobase.services.service.InternalDbPersistenceService; import fr.ifremer.echobase.services.service.exportquery.ExportQueryNotFoundException; +import fr.ifremer.echobase.services.service.exportquery.ExportQueryService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; import java.util.Map; /** @@ -82,7 +83,7 @@ log.info("Will show all queries"); } - queries = internalDbPersistenceService.loadSortAndDecorate(ExportQuery.class); + queries = exportQueryService.loadSortAndDecorate(ExportQuery.class); if (queries.isEmpty()) { @@ -96,15 +97,6 @@ //-- Injected objects // //------------------------------------------------------------------------// -// protected transient ExportQueryService exportQueryService; -// -// public void setExportQueryService(ExportQueryService exportQueryService) { -// this.exportQueryService = exportQueryService; -// } - - protected transient InternalDbPersistenceService internalDbPersistenceService; - - public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) { - this.internalDbPersistenceService = internalDbPersistenceService; - } + @Inject + protected transient ExportQueryService exportQueryService; } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractConfigureImport.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractConfigureImport.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractConfigureImport.java 2013-12-22 00:29:17 UTC (rev 925) @@ -71,6 +71,4 @@ } } } - - } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAcousticImport.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAcousticImport.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAcousticImport.java 2013-12-22 00:29:17 UTC (rev 925) @@ -56,7 +56,7 @@ @Override protected void prepareInputAction(AcousticImportConfiguration model) { - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); cellPositionReferences = decoratorService.decorateEnums(CellPositionReference.values()); if (model.getCellPositionReference() == null) { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesImport.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesImport.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesImport.java 2013-12-22 00:29:17 UTC (rev 925) @@ -53,7 +53,7 @@ @Override protected void prepareInputAction(CatchesImportConfiguration model) { - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); } public Map<String, String> getVoyages() { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCommonImport.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCommonImport.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCommonImport.java 2013-12-22 00:29:17 UTC (rev 925) @@ -66,9 +66,9 @@ @Override protected void prepareInputAction(CommonImportConfiguration model) { - missions = workingDbPersistenceService.loadSortAndDecorate(Mission.class); - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); - areaOfOperations = workingDbPersistenceService.loadSortAndDecorate(AreaOfOperation.class); + missions = userDbPersistenceService.loadSortAndDecorate(Mission.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); + areaOfOperations = userDbPersistenceService.loadSortAndDecorate(AreaOfOperation.class); importTypes = decoratorService.decorateEnums(ImportType.getCommonImportType()); if (model.getImportType() == null) { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperationImport.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperationImport.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperationImport.java 2013-12-22 00:29:17 UTC (rev 925) @@ -53,7 +53,7 @@ @Override protected void prepareInputAction(OperationImportConfiguration model) { - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); } public Map<String, String> getVoyages() { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureResultsImport.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureResultsImport.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureResultsImport.java 2013-12-22 00:29:17 UTC (rev 925) @@ -64,8 +64,8 @@ @Override protected void prepareInputAction(ResultsImportConfiguration model) { - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); - vessels = workingDbPersistenceService.loadSortAndDecorate(Vessel.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); + vessels = userDbPersistenceService.loadSortAndDecorate(Vessel.class); importTypes = decoratorService.decorateEnums(ImportType.getResultImportType()); if (model.getImportType() == null) { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/CreateMission.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/CreateMission.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/CreateMission.java 2013-12-22 00:29:17 UTC (rev 925) @@ -32,6 +32,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; + /** * To create a new mission * @@ -82,9 +84,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient CommonImportService commonImportService; - - public void setCommonImportService(CommonImportService commonImportService) { - this.commonImportService = commonImportService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetDataProcessingsForVoyage.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetDataProcessingsForVoyage.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetDataProcessingsForVoyage.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,11 +26,12 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.importdata.ResultsImportService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; +import javax.inject.Inject; import java.util.Map; /** @@ -64,7 +65,7 @@ } else { - Voyage voyage = workingDbPersistenceService.getVoyage(voyageId); + Voyage voyage = userDbPersistenceService.getVoyage(voyageId); Preconditions.checkNotNull( voyage, @@ -80,15 +81,8 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; - - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } - + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; + @Inject protected transient ResultsImportService resultsImportService; - - public void setResultsImportService(ResultsImportService resultsImportService) { - this.resultsImportService = resultsImportService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVesselsForVoyage.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVesselsForVoyage.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVesselsForVoyage.java 2013-12-22 00:29:17 UTC (rev 925) @@ -28,11 +28,12 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.services.service.DecoratorService; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; import org.nuiton.decorator.Decorator; +import javax.inject.Inject; import java.util.Map; import java.util.Set; @@ -66,7 +67,7 @@ if (StringUtils.isNotEmpty(voyageId)) { - Voyage voyage = workingDbPersistenceService.getVoyage(voyageId); + Voyage voyage = userDbPersistenceService.getVoyage(voyageId); Preconditions.checkNotNull(voyage, "Could not find voyage with id " + voyageId); @@ -94,15 +95,9 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } - + @Inject protected transient DecoratorService decoratorService; - - public void setDecoratorService(DecoratorService decoratorService) { - this.decoratorService = decoratorService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/SelectImportType.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/SelectImportType.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/SelectImportType.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,6 +26,7 @@ import fr.ifremer.echobase.services.service.DecoratorService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import javax.inject.Inject; import java.util.Map; /** @@ -74,9 +75,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient DecoratorService decoratorService; - - public void setDecoratorService(DecoratorService decoratorService) { - this.decoratorService = decoratorService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/ConfirmDelete.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/ConfirmDelete.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/ConfirmDelete.java 2013-12-22 00:29:17 UTC (rev 925) @@ -86,9 +86,9 @@ if (log.isInfoEnabled()) { log.info("Load import log " + id); } - ImportLog importLog = workingDbPersistenceService.getImportLog(id); + ImportLog importLog = userDbPersistenceService.getImportLog(id); - Voyage voyageEntity = workingDbPersistenceService.getVoyage(importLog.getVoyageId()); + Voyage voyageEntity = userDbPersistenceService.getVoyage(importLog.getVoyageId()); String voyage = decorator.toString(voyageEntity); String importType = importTypes.get(importLog.getImportType().name()); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/ImportLogs.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/ImportLogs.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/ImportLogs.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,9 +24,10 @@ */ import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import javax.inject.Inject; import java.util.Map; /** @@ -58,7 +59,7 @@ @Override public String execute() throws Exception { - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); return SUCCESS; } @@ -67,9 +68,6 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; - - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/AbstractGetVoyage.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/AbstractGetVoyage.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/AbstractGetVoyage.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,11 +26,12 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.spatial.SpatialService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; +import javax.inject.Inject; import java.util.Map; /** @@ -66,7 +67,7 @@ } else { - Voyage voyage = workingDbPersistenceService.getVoyage(voyageId); + Voyage voyage = userDbPersistenceService.getVoyage(voyageId); Preconditions.checkNotNull( voyage, @@ -82,15 +83,8 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; - - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } - + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; + @Inject protected transient SpatialService spatialService; - - public void setSpatialService(SpatialService spatialService) { - this.spatialService = spatialService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetSpatialData.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetSpatialData.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetSpatialData.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,6 +27,7 @@ import fr.ifremer.echobase.services.service.spatial.SpatialService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import javax.inject.Inject; import java.util.Set; /** @@ -74,9 +75,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient SpatialService spatialService; - - public void setSpatialService(SpatialService spatialService) { - this.spatialService = spatialService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageDataMetadata.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageDataMetadata.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageDataMetadata.java 2013-12-22 00:29:17 UTC (rev 925) @@ -47,7 +47,7 @@ @Override protected Map<String, String> buildData(SpatialService service, Voyage voyage) { - Map<String, String> result = workingDbPersistenceService.loadSortAndDecorate(DataMetadata.class); + Map<String, String> result = userDbPersistenceService.loadSortAndDecorate(DataMetadata.class); return result; } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageEchotype.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageEchotype.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageEchotype.java 2013-12-22 00:29:17 UTC (rev 925) @@ -48,7 +48,7 @@ protected Map<String, String> buildData(SpatialService service, Voyage voyage) { - Map<String, String> result = workingDbPersistenceService.loadSortAndDecorate(Echotype.class); + Map<String, String> result = userDbPersistenceService.loadSortAndDecorate(Echotype.class); return result; } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageSpecies.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageSpecies.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/GetVoyageSpecies.java 2013-12-22 00:29:17 UTC (rev 925) @@ -48,7 +48,7 @@ protected Map<String, String> buildData(SpatialService service, Voyage voyage) { - Map<String, String> result = workingDbPersistenceService.loadSortAndDecorate(Species.class); + Map<String, String> result = userDbPersistenceService.loadSortAndDecorate(Species.class); return result; } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/ShowSpatialData.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/ShowSpatialData.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/spatial/ShowSpatialData.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,10 +27,11 @@ import com.opensymphony.xwork2.interceptor.annotations.InputConfig; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.CellType; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.spatial.SpatialService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import javax.inject.Inject; import java.util.Map; /** @@ -71,10 +72,10 @@ @Override public void prepare() throws Exception { - voyages = workingDbPersistenceService.loadSortAndDecorate(Voyage.class); - cellTypes = workingDbPersistenceService.loadSortAndDecorate(CellType.class); + voyages = userDbPersistenceService.loadSortAndDecorate(Voyage.class); + cellTypes = userDbPersistenceService.loadSortAndDecorate(CellType.class); - model.setJdbcUrl(getServiceContext().getWorkgingDbUrl()); + model.setJdbcUrl(getServiceContext().getUserDbUrl()); model.setWithSpatial(spatialService.isSpatialAware()); // can add postgis if working db is postgresql and has still no echobase @@ -101,15 +102,8 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; - - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } - + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; + @Inject protected transient SpatialService spatialService; - - public void setSpatialService(SpatialService spatialService) { - this.spatialService = spatialService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java 2013-12-22 00:29:17 UTC (rev 925) @@ -30,6 +30,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.inject.Inject; + /** * To create a user. * @@ -112,9 +114,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient UserService userService; - - public void setUserService(UserService userService) { - this.userService = userService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2013-12-22 00:29:17 UTC (rev 925) @@ -32,6 +32,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ParameterAware; +import javax.inject.Inject; import java.util.Map; /** @@ -99,9 +100,6 @@ this.parameters = parameters; } + @Inject protected transient UserService userService; - - public void setUserService(UserService userService) { - this.userService = userService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java 2013-12-22 00:29:17 UTC (rev 925) @@ -29,6 +29,7 @@ import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; +import javax.inject.Inject; import java.util.List; import java.util.Map; @@ -71,9 +72,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient UserService userService; - - public void setUserService(UserService userService) { - this.userService = userService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Login.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Login.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Login.java 2013-12-22 00:29:17 UTC (rev 925) @@ -33,6 +33,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.SessionAware; +import javax.inject.Inject; import java.util.Locale; import java.util.Map; @@ -119,9 +120,6 @@ this.session = session; } + @Inject protected transient UserService userService; - - public void setUserService(UserService userService) { - this.userService = userService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2013-12-22 00:29:17 UTC (rev 925) @@ -32,6 +32,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ParameterAware; +import javax.inject.Inject; import java.util.Map; /** @@ -98,9 +99,6 @@ this.parameters = parameters; } + @Inject protected transient UserService userService; - - public void setUserService(UserService userService) { - this.userService = userService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/AbstractWorkingDbAction.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/AbstractWorkingDbAction.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/AbstractWorkingDbAction.java 2013-12-22 00:29:17 UTC (rev 925) @@ -27,7 +27,7 @@ import fr.ifremer.echobase.entities.DriverType; import fr.ifremer.echobase.entities.WorkingDbConfiguration; import fr.ifremer.echobase.services.service.DecoratorService; -import fr.ifremer.echobase.services.service.InternalDbPersistenceService; +import fr.ifremer.echobase.services.service.exportquery.ExportQueryService; import fr.ifremer.echobase.services.service.workingDb.WorkingDbConfigurationService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; @@ -35,6 +35,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ParameterAware; +import javax.inject.Inject; import java.util.Map; /** @@ -88,7 +89,7 @@ driverTypes = decoratorService.decorateEnums(DriverType.values()); - confs = internalDbPersistenceService.loadSortAndDecorate(WorkingDbConfiguration.class); + confs = exportQueryService.loadSortAndDecorate(WorkingDbConfiguration.class); if (confs.isEmpty()) { @@ -120,22 +121,10 @@ this.parameters = parameters; } - protected transient InternalDbPersistenceService internalDbPersistenceService; - - public void setInternalDbPersistenceService(InternalDbPersistenceService internalDbPersistenceService) { - this.internalDbPersistenceService = internalDbPersistenceService; - } - + @Inject protected transient WorkingDbConfigurationService workingDbConfigurationService; - - public void setWorkingDbConfigurationService(WorkingDbConfigurationService workingDbConfigurationService) { - this.workingDbConfigurationService = workingDbConfigurationService; - } - + @Inject protected transient DecoratorService decoratorService; - - public void setDecoratorService(DecoratorService decoratorService) { - this.decoratorService = decoratorService; - } - + @Inject + protected transient ExportQueryService exportQueryService; } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/AddSpatial.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/AddSpatial.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/AddSpatial.java 2013-12-22 00:29:17 UTC (rev 925) @@ -25,6 +25,8 @@ import fr.ifremer.echobase.services.service.spatial.SpatialService; +import javax.inject.Inject; + /** * To add echobase spatial sutff to curerent working db. * <p/> @@ -50,9 +52,6 @@ //-- Injected objects // //------------------------------------------------------------------------// + @Inject protected transient SpatialService spatialService; - - public void setSpatialService(SpatialService spatialService) { - this.spatialService = spatialService; - } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Connect.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Connect.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Connect.java 2013-12-22 00:29:17 UTC (rev 925) @@ -71,7 +71,7 @@ try { EchoBaseEntityHelper.checkJDBCConnection(jdbcConf); - getEchoBaseSession().initWorkingDb(jdbcConf, true); + getEchoBaseSession().initUserDb(jdbcConf, true); addFlashMessage(_("echobase.info.workingDbconfiguration.connected", conf.getUrl())); result = SUCCESS; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/CreatePostgresDb.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/CreatePostgresDb.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/CreatePostgresDb.java 2013-12-22 00:29:17 UTC (rev 925) @@ -75,13 +75,13 @@ try { // connect to meta database - getEchoBaseSession().initWorkingDb(metaJdbcConf, false); + getEchoBaseSession().initUserDb(metaJdbcConf, false); // create database workingDbConfigurationService.createDb(jdbcConf); // connect to new database - getEchoBaseSession().initWorkingDb(jdbcConf, true); + getEchoBaseSession().initUserDb(jdbcConf, true); addFlashMessage(_("echobase.info.workingDb.created", conf.getUrl())); @@ -89,7 +89,7 @@ try { //close working db if something is wrong. - getEchoBaseSession().releaseWorkingDb(); + getEchoBaseSession().releaseUserDb(); } finally { metaJdbcConf = null; jdbcConf = null; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Disconnect.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Disconnect.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Disconnect.java 2013-12-22 00:29:17 UTC (rev 925) @@ -40,7 +40,7 @@ public String execute() throws Exception { JdbcConfiguration sessionConf = getEchoBaseSession().getWorkingDbConfiguration(); - getEchoBaseSession().releaseWorkingDb(); + getEchoBaseSession().releaseUserDb(); addFlashMessage(_("echobase.info.workingDbconfiguration.disconnected", sessionConf.getUrl())); return SUCCESS; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/GetImportLogDetail.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/GetImportLogDetail.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/GetImportLogDetail.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,16 +23,17 @@ * #L% */ -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.services.service.DbEditorService; import fr.ifremer.echobase.services.service.DecoratorService; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.nuiton.topia.persistence.metadata.TableMeta; +import javax.inject.Inject; import java.util.Map; /** @@ -60,8 +61,8 @@ @Override public String execute() throws Exception { - TableMeta<EchoBaseEntityEnum> tableMeta = - dbEditorService.getTableMeta(EchoBaseEntityEnum.ImportLog); + TableMeta<EchoBaseUserEntityEnum> tableMeta = + dbEditorService.getTableMeta(EchoBaseUserEntityEnum.ImportLog); data = dbEditorService.getData(tableMeta, importLogId); // decorate import type @@ -70,7 +71,7 @@ data.put(ImportLog.PROPERTY_IMPORT_TYPE, importTypes.get(importType)); // decorate foreign keys - Voyage voyage = workingDbPersistenceService.getVoyage((String) data.get(ImportLog.PROPERTY_VOYAGE_ID)); + Voyage voyage = userDbPersistenceService.getVoyage((String) data.get(ImportLog.PROPERTY_VOYAGE_ID)); decoratorService.decorateForeignKey(data, ImportLog.PROPERTY_VOYAGE_ID, voyage, null); return SUCCESS; @@ -80,21 +81,10 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; - - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } - + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; + @Inject protected transient DbEditorService dbEditorService; - - public void setDbEditorService(DbEditorService dbEditorService) { - this.dbEditorService = dbEditorService; - } - + @Inject protected transient DecoratorService decoratorService; - - public void setDecoratorService(DecoratorService decoratorService) { - this.decoratorService = decoratorService; - } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/GetVoyage.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/GetVoyage.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/GetVoyage.java 2013-12-22 00:29:17 UTC (rev 925) @@ -23,17 +23,18 @@ * #L% */ -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.AreaOfOperation; import fr.ifremer.echobase.entities.references.Mission; import fr.ifremer.echobase.services.service.DbEditorService; import fr.ifremer.echobase.services.service.DecoratorService; -import fr.ifremer.echobase.services.service.WorkingDbPersistenceService; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.nuiton.topia.persistence.metadata.TableMeta; +import javax.inject.Inject; import java.util.Map; /** @@ -61,15 +62,15 @@ @Override public String execute() throws Exception { - TableMeta<EchoBaseEntityEnum> tableMeta = - dbEditorService.getTableMeta(EchoBaseEntityEnum.Voyage); + TableMeta<EchoBaseUserEntityEnum> tableMeta = + dbEditorService.getTableMeta(EchoBaseUserEntityEnum.Voyage); data = dbEditorService.getData(tableMeta, voyageId); // decorate foreign keys - Mission mission = workingDbPersistenceService.getMission((String) data.get(Voyage.PROPERTY_MISSION)); + Mission mission = userDbPersistenceService.getMission((String) data.get(Voyage.PROPERTY_MISSION)); decoratorService.decorateForeignKey(data, Voyage.PROPERTY_MISSION, mission, null); - AreaOfOperation areaOfOperation = workingDbPersistenceService.getAreaOfOperation((String) data.get(Voyage.PROPERTY_AREA_OF_OPERATION)); + AreaOfOperation areaOfOperation = userDbPersistenceService.getAreaOfOperation((String) data.get(Voyage.PROPERTY_AREA_OF_OPERATION)); decoratorService.decorateForeignKey(data, Voyage.PROPERTY_AREA_OF_OPERATION, areaOfOperation, null); return SUCCESS; @@ -79,22 +80,10 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient WorkingDbPersistenceService workingDbPersistenceService; - - public void setWorkingDbPersistenceService(WorkingDbPersistenceService workingDbPersistenceService) { - this.workingDbPersistenceService = workingDbPersistenceService; - } - + @Inject + protected transient UserDbPersistenceService userDbPersistenceService; + @Inject protected transient DecoratorService decoratorService; - - public void setDecoratorService(DecoratorService decoratorService) { - this.decoratorService = decoratorService; - } - + @Inject protected transient DbEditorService dbEditorService; - - public void setDbEditorService(DbEditorService dbEditorService) { - this.dbEditorService = dbEditorService; - } - } \ No newline at end of file Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java 2013-12-22 00:29:17 UTC (rev 925) @@ -24,10 +24,12 @@ */ import fr.ifremer.echobase.config.EchoBaseConfiguration; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; import fr.ifremer.echobase.persistence.JdbcConfiguration; -import fr.ifremer.echobase.services.service.spatial.SpatialService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import javax.inject.Inject; + /** * Display a page to show connection details. * @@ -79,11 +81,11 @@ pilotVersion = dbConfiguration.getDriverType().getPilotVersion(configuration); - spatialAware = spatialService.isSpatialAware(); + spatialAware = db.isSpatialAware(); // can add postgis if working db is postgresql and has still no echobase // spatial db - canAddSpatial = !spatialAware && spatialService.isPostgresql(); + canAddSpatial = !spatialAware && db.isPostgresql(); return SUCCESS; } @@ -91,9 +93,6 @@ //-- Injected objects // //------------------------------------------------------------------------// - protected transient SpatialService spatialService; - - public void setSpatialService(SpatialService spatialService) { - this.spatialService = spatialService; - } + @Inject + protected transient EchoBaseUserPersistenceContext db; } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/EchoBaseInjectInterceptor.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/EchoBaseInjectInterceptor.java 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/interceptors/EchoBaseInjectInterceptor.java 2013-12-22 00:29:17 UTC (rev 925) @@ -26,21 +26,22 @@ import com.google.common.base.Preconditions; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; +import fr.ifremer.echobase.entities.EchoBaseInternalPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; +import fr.ifremer.echobase.entities.EchoBaseUserTopiaApplicationContext; import fr.ifremer.echobase.services.EchoBaseService; import fr.ifremer.echobase.services.EchoBaseServiceContext; +import fr.ifremer.echobase.services.EchobaseAieOC; import fr.ifremer.echobase.ui.EchoBaseApplicationContext; import fr.ifremer.echobase.ui.EchoBaseInternalDbTransactionFilter; import fr.ifremer.echobase.ui.EchoBaseSession; -import fr.ifremer.echobase.ui.EchoBaseWorkingDbTransactionFilter; +import fr.ifremer.echobase.ui.EchoBaseUserDbTransactionFilter; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.util.beans.BeanUtil; -import java.beans.PropertyDescriptor; +import java.lang.reflect.Field; import java.util.Locale; -import java.util.Set; public class EchoBaseInjectInterceptor implements Interceptor { @@ -55,7 +56,6 @@ if (log.isInfoEnabled()) { log.info("init " + this); } - } @Override @@ -66,55 +66,14 @@ if (action instanceof EchoBaseActionSupport) { EchoBaseActionSupport echoBaseActionSupport = (EchoBaseActionSupport) action; - EchoBaseSession userSession = getEchoBaseSession(invocation); - EchoBaseServiceContext serviceContext = newServiceContext( invocation, echoBaseActionSupport.getLocale()); - Set<PropertyDescriptor> descriptors = - BeanUtil.getDescriptors( - action.getClass(), - BeanUtil.IS_WRITE_DESCRIPTOR); - - for (PropertyDescriptor propertyDescriptor : descriptors) { - - Class<?> propertyType = propertyDescriptor.getPropertyType(); - - Object toInject = null; - - if (EchoBaseServiceContext.class.isAssignableFrom(propertyType)) { - toInject = serviceContext; - } else if (EchoBaseService.class.isAssignableFrom(propertyType)) { - - Class<? extends EchoBaseService> serviceClass = - (Class<? extends EchoBaseService>) propertyType; - - toInject = serviceContext.newService(serviceClass); - - } else if (EchoBaseSession.class.isAssignableFrom(propertyType)) { - - toInject = userSession; - - } else if (EchoBaseApplicationContext.class.isAssignableFrom(propertyType)) { - - toInject = getEchoBaseApplicationContext(invocation); - - } - - if (toInject != null) { - - if (log.isTraceEnabled()) { - log.trace("injecting " + toInject + " in action " + action); - } - - propertyDescriptor.getWriteMethod().invoke(action, toInject); - - } - } + ActionEchobaseAieOC injector = new ActionEchobaseAieOC(invocation); + injector.inject(serviceContext, action); } return invocation.invoke(); - } protected EchoBaseSession getEchoBaseSession(ActionInvocation invocation) { @@ -144,21 +103,25 @@ Locale locale) { - TopiaContext topiaInternalContext = - EchoBaseInternalDbTransactionFilter.getTransaction( + EchoBaseInternalPersistenceContext topiaInternalContext = + EchoBaseInternalDbTransactionFilter.getPersistenceContext( invocation.getInvocationContext()); - TopiaContext topiaContext = - EchoBaseWorkingDbTransactionFilter.getTransaction( + EchoBaseUserPersistenceContext topiaContext = + EchoBaseUserDbTransactionFilter.getPersistenceContext( invocation.getInvocationContext()); EchoBaseApplicationContext applicationContext = getEchoBaseApplicationContext(invocation); + EchoBaseSession echoBaseSession = getEchoBaseSession(invocation); + EchoBaseUserTopiaApplicationContext workingDbRootContext = + echoBaseSession.getUserDbApplicationContext(); EchoBaseServiceContext serviceContext = applicationContext.newServiceContext(locale, topiaInternalContext, - topiaContext); + topiaContext, + workingDbRootContext); return serviceContext; @@ -173,4 +136,44 @@ } + protected class ActionEchobaseAieOC extends EchobaseAieOC { + + private final ActionInvocation invocation; + + public ActionEchobaseAieOC(ActionInvocation invocation) { + this.invocation= invocation; + } + + @Override + protected Object toInject(EchoBaseServiceContext serviceContext, + Field field) { + + Class<?> propertyType = field.getType(); + + Object toInject = null; + if (EchoBaseUserPersistenceContext.class.isAssignableFrom(propertyType)) { + toInject = serviceContext.getEchoBaseUserPersistenceContext(); + + } else if (EchoBaseServiceContext.class.isAssignableFrom(propertyType)) { + toInject = serviceContext; + + } else if (EchoBaseService.class.isAssignableFrom(propertyType)) { + + Class<? extends EchoBaseService> serviceClass = + (Class<? extends EchoBaseService>) propertyType; + toInject = serviceContext.newService(serviceClass); + + } else if (EchoBaseSession.class.isAssignableFrom(propertyType)) { + + EchoBaseSession userSession = getEchoBaseSession(invocation); + toInject = userSession; + + } else if (EchoBaseApplicationContext.class.isAssignableFrom(propertyType)) { + + toInject = getEchoBaseApplicationContext(invocation); + } + + return toInject; + } + } } Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/web.xml 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/web.xml 2013-12-22 00:29:17 UTC (rev 925) @@ -39,7 +39,7 @@ <filter> <filter-name>workingDbTransaction</filter-name> <filter-class> - fr.ifremer.echobase.ui.EchoBaseWorkingDbTransactionFilter + fr.ifremer.echobase.ui.EchoBaseUserDbTransactionFilter </filter-class> </filter> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2013-12-17 08:30:52 UTC (rev 924) +++ trunk/pom.xml 2013-12-22 00:29:17 UTC (rev 925) @@ -138,9 +138,9 @@ <!-- libraries version --> - <topiaVersion>3.0-alpha-3.1</topiaVersion> + <topiaVersion>3.0-SNAPSHOT</topiaVersion> <nuitonI18nVersion>2.5.2</nuitonI18nVersion> - <nuitonWebVersion>1.14</nuitonWebVersion> + <nuitonWebVersion>1.15-SNAPSHOT</nuitonWebVersion> <nuitonUtilsVersion>2.7.1</nuitonUtilsVersion> <struts2Version>2.3.15.3</struts2Version> <jqueryPluginVersion>3.6.1</jqueryPluginVersion> @@ -256,15 +256,14 @@ <dependency> <groupId>org.nuiton.topia</groupId> - <artifactId>topia-persistence</artifactId> + <artifactId>topia-service-migration</artifactId> <version>${topiaVersion}</version> - <scope>test</scope> - <classifier>tests</classifier> + <scope>compile</scope> </dependency> <dependency> <groupId>org.nuiton.topia</groupId> - <artifactId>topia-service-migration</artifactId> + <artifactId>topia-service-csv</artifactId> <version>${topiaVersion}</version> <scope>compile</scope> </dependency> @@ -342,11 +341,18 @@ <!-- librairies web --> <dependency> + <groupId>javax</groupId> + <artifactId>javaee-api</artifactId> + <version>7.0</version> + <scope>provided</scope> + </dependency> + + <!--dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> - </dependency> + </dependency--> <dependency> <groupId>org.mortbay.jetty</groupId> @@ -402,7 +408,7 @@ <plugin> <groupId>org.nuiton.eugene</groupId> <artifactId>eugene-maven-plugin</artifactId> - <version>2.7.1</version> + <version>2.7.3</version> </plugin> <plugin>