branch develop updated (7b7da62 -> 23001bf)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 7b7da62 Problèmes lors de la synchro du référentiel de bases locales (Fixes #8853) new 25d6fb8 Problème d'interprétation de coordonnée en DMD par le widget (fixes #8860) new 1f3119f Classement des marées dans l'arbre (fixes #8861) new c95396f Impossible d'exporter des marées en mode serveur (Fixes #8862) new 5b96c24 Mémorisation du dernier dossier utilisé (Fixes #8864) new 15510ff Problème de chargement du fichier des talbeaux de synthèse (Fixes #8865) new 6caccbb [persistence] Toujours utiliser la configuration hibernate customisé même pour les services de topia (Fixes #8868) new 0af7509 [iso] différentes adaptations suite aux test en mode serveur new ec2f51d Report from v5 Merge branch 'feature/report_from_5' into develop new 23001bf [iso] fix rest tests The 9 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 23001bfb86e09aee20032679338561aa0c478826 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 12:54:06 2016 +0100 [iso] fix rest tests commit ec2f51d804f6dd7522c76f7063739b2fe5302f94 Merge: 7b7da62 0af7509 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 12:16:07 2016 +0100 Report from v5 Merge branch 'feature/report_from_5' into develop commit 0af7509b63bb0975ed89121692f4e3ecb442388c Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 12:15:52 2016 +0100 [iso] différentes adaptations suite aux test en mode serveur commit 6caccbb0dbc4f4de227f4d527e052c2e6610b20a Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 10:18:27 2016 +0100 [persistence] Toujours utiliser la configuration hibernate customisé même pour les services de topia (Fixes #8868) commit 15510ffba2edd15b75104a63a1c52e01e1822113 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 10:13:41 2016 +0100 Problème de chargement du fichier des talbeaux de synthèse (Fixes #8865) commit 5b96c2440679694b3881cc6af49b7a12e4483dd0 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 10:12:42 2016 +0100 Mémorisation du dernier dossier utilisé (Fixes #8864) commit c95396f96f5dde1bd8ef00297418a0162d2862ff Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 10:08:23 2016 +0100 Impossible d'exporter des marées en mode serveur (Fixes #8862) commit 1f3119fd02fbf9d35ed25b3adb64f707deb4667b Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 09:49:56 2016 +0100 Classement des marées dans l'arbre (fixes #8861) commit 25d6fb8ea6da4433f9d31189ce02472e814e46a6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Dec 10 17:29:36 2016 +0100 Problème d'interprétation de coordonnée en DMD par le widget (fixes #8860) Summary of changes: .../src/main/config/ObserveSwingApplication.ini | 8 +++ ...pplication-swing-configuration_en_GB.properties | 1 + ...pplication-swing-configuration_es_ES.properties | 1 + ...pplication-swing-configuration_fr_FR.properties | 1 + .../ui/actions/menu/config/ShowConfigAction.java | 1 + .../menu/storage/ImportStorageFromFileAction.java | 11 ++++- .../swing/ui/admin/config/SelectDataModel.java | 6 +-- .../swing/ui/admin/export/ExportUIHandler.java | 5 +- .../swing/ui/admin/report/ReportModel.java | 4 +- .../swing/ui/storage/StorageUILauncher.java | 6 +-- .../longline/TripLonglineServiceController.java | 6 +-- .../v1/data/seine/TripSeineServiceController.java | 6 +-- .../DataSourceMigrationForVersion_6_0.java | 2 +- .../observe/ObserveTopiaApplicationContext.java | 16 +----- .../fr/ird/observe/ObserveTopiaConfiguration.java | 10 ++-- pom.xml | 4 +- .../dto/gson/ArrayListMultimapAdapter.java | 20 ++++---- .../services/dto/gson/ImmutableMapAdapter.java | 11 +---- .../dto/gson/ImmutableMultimapAdapter.java | 11 +---- .../services/dto/gson/ImmutableSetAdapter.java | 6 ++- ...MapAdapter.java => MultimapAdapterSupport.java} | 32 +++++++----- .../dto/gson/ObserveBlobsContainerAdapter.java | 42 ++++++++++++++++ .../services/dto/gson/ObserveDtoGsonSupplier.java | 23 ++++++++- .../services/dto/gson/SetMultimapAdapter.java | 21 ++++---- ...tAdapter.java => DataReferenceListAdapter.java} | 16 ++++-- .../gson/reference/DataReferenceSetAdapter.java | 8 ++- ...java => ReferenceCollectionSupportAdapter.java} | 18 ++++--- .../reference/ReferentialReferenceSetAdapter.java | 8 ++- ...ataReferenceSet.java => DataReferenceList.java} | 16 +++--- .../ird/observe/services/dto/DataReferenceSet.java | 2 +- .../services/dto}/ObserveBlobsContainer.java | 2 +- ...nceSet.java => ReferenceCollectionSupport.java} | 10 ++-- .../dto/referential/LengthLengthParameterDto.java | 10 ++-- .../dto/referential/LengthWeightParameterDto.java | 10 ++-- .../dto/referential/ReferentialMultimap.java | 16 +++--- .../dto/referential/ReferentialReferenceSet.java | 10 ++-- .../services/rest/http/ObserveResponseBuilder.java | 29 ++++++----- .../services/rest/RestTestMethodResource.java | 2 +- .../rest/service/AbstractServiceRestTest.java | 8 +-- .../seine/TripSeineGearUseServiceRestTest.java | 6 +-- .../service/seine/TripSeineServiceRestTest.java | 6 +-- .../topia/binder/data/DataBinderSupport.java | 2 +- .../services/topia/ObserveServiceTopia.java | 26 ++++++++-- .../service/data/ImportTripScriptTopiaSqlWork.java | 2 +- .../topia/service/data/NavigationServiceTopia.java | 13 +++-- .../service/data/TripManagementServiceTopia.java | 2 +- .../data/longline/TripLonglineServiceTopia.java | 21 ++++---- .../service/data/seine/TripSeineServiceTopia.java | 15 +++--- .../referential/ReferentialServiceTopia.java | 12 ++--- .../service/sql/SqlScriptProducerServiceTopia.java | 2 +- .../services/topia/binder/BinderEngineTest.java | 2 +- .../data/TripManagementServiceTopiaTest.java | 6 +-- .../data/seine/TripSeineServiceTopiaTest.java | 6 +-- .../services/service/data/ExportTripResult.java | 2 +- .../services/service/data/ImportTripRequest.java | 2 +- .../services/service/data/NavigationRequest.java | 4 +- .../services/service/data/NavigationResult.java | 10 ++-- .../service/data/longline/TripLonglineService.java | 7 +-- .../service/data/seine/TripSeineService.java | 7 +-- .../service/sql/AddSqlScriptProducerResult.java | 1 + .../ird/observe/test/ObserveTestConfiguration.java | 57 ++++++---------------- .../ird/observe/test/TestClassResourceSupport.java | 22 +++++++-- .../observe/test/TestMethodResourceSupport.java | 25 +++++++--- ...n.java => DatabaseServerNameConfiguration.java} | 6 +-- test/src/main/resources/observetest.properties | 1 + 65 files changed, 396 insertions(+), 288 deletions(-) copy services-dto/src/main/java/fr/ird/observe/services/dto/constants/ReferenceStatus.java => services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ArrayListMultimapAdapter.java (73%) copy services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/{ImmutableMapAdapter.java => MultimapAdapterSupport.java} (59%) create mode 100644 services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveBlobsContainerAdapter.java copy services-dto/src/main/java/fr/ird/observe/services/dto/constants/ReferenceStatus.java => services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/SetMultimapAdapter.java (71%) copy services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/{DataReferenceSetAdapter.java => DataReferenceListAdapter.java} (71%) rename services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/{AbstractReferenceSetAdapter.java => ReferenceCollectionSupportAdapter.java} (73%) copy services-dto/src/main/java/fr/ird/observe/services/dto/{DataReferenceSet.java => DataReferenceList.java} (62%) rename {services/src/main/java/fr/ird/observe/services/service/sql => services-dto/src/main/java/fr/ird/observe/services/dto}/ObserveBlobsContainer.java (97%) rename services-dto/src/main/java/fr/ird/observe/services/dto/{AbstractReferenceSet.java => ReferenceCollectionSupport.java} (82%) copy test/src/main/java/fr/ird/observe/test/spi/{DatabaseUrlConfiguration.java => DatabaseServerNameConfiguration.java} (87%) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 25d6fb8ea6da4433f9d31189ce02472e814e46a6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Dec 10 17:29:36 2016 +0100 Problème d'interprétation de coordonnée en DMD par le widget (fixes #8860) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index fd0b310..b8ed0e6 100644 --- a/pom.xml +++ b/pom.xml @@ -165,7 +165,7 @@ <processorPluginVersion>1.3</processorPluginVersion> <topiaVersion>3.2-SNAPSHOT</topiaVersion> - <jaxxVersion>2.35-SNAPSHOT</jaxxVersion> + <jaxxVersion>2.35</jaxxVersion> <nuitonI18nVersion>3.6.2</nuitonI18nVersion> <nuitonValidatorVersion>3.0.1</nuitonValidatorVersion> <nuitonUtilsVersion>3.0-rc-16</nuitonUtilsVersion> @@ -281,7 +281,7 @@ <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> - <version>19.0</version> + <version>20.0</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 1f3119fd02fbf9d35ed25b3adb64f707deb4667b Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 09:49:56 2016 +0100 Classement des marées dans l'arbre (fixes #8861) --- .../swing/ui/admin/config/SelectDataModel.java | 6 ++--- .../longline/TripLonglineServiceController.java | 6 ++--- .../v1/data/seine/TripSeineServiceController.java | 6 ++--- .../services/dto/gson/ObserveDtoGsonSupplier.java | 3 +++ ...tAdapter.java => DataReferenceListAdapter.java} | 16 ++++++++----- .../gson/reference/DataReferenceSetAdapter.java | 8 ++++++- ...java => ReferenceCollectionSupportAdapter.java} | 18 ++++++++------- .../reference/ReferentialReferenceSetAdapter.java | 8 ++++++- ...ataReferenceSet.java => DataReferenceList.java} | 16 ++++++------- .../ird/observe/services/dto/DataReferenceSet.java | 2 +- ...nceSet.java => ReferenceCollectionSupport.java} | 10 ++++----- .../dto/referential/ReferentialReferenceSet.java | 10 ++++----- .../seine/TripSeineGearUseServiceRestTest.java | 6 ++--- .../service/seine/TripSeineServiceRestTest.java | 6 ++--- .../services/topia/ObserveServiceTopia.java | 26 +++++++++++++++++++--- .../topia/service/data/NavigationServiceTopia.java | 13 +++++------ .../data/longline/TripLonglineServiceTopia.java | 21 ++++++++--------- .../service/data/seine/TripSeineServiceTopia.java | 15 +++++++------ .../referential/ReferentialServiceTopia.java | 8 +++---- .../data/TripManagementServiceTopiaTest.java | 6 ++--- .../data/seine/TripSeineServiceTopiaTest.java | 6 ++--- .../service/data/longline/TripLonglineService.java | 7 +++--- .../service/data/seine/TripSeineService.java | 7 +++--- 23 files changed, 138 insertions(+), 92 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataModel.java index c28d068..bae24c7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/SelectDataModel.java @@ -29,7 +29,7 @@ import fr.ird.observe.application.swing.ui.admin.AdminUIModel; import fr.ird.observe.application.swing.ui.admin.report.ReportModel; import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.IdHelper; import fr.ird.observe.services.dto.ObserveModelType; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -106,11 +106,11 @@ public class SelectDataModel extends AdminActionModel { List<DataReference<?>> existingTrip = new ArrayList<>(); TripSeineService tripSeineService = safeCentralSource.newTripSeineService(); - DataReferenceSet<TripSeineDto> tripSeineSet = tripSeineService.getAllTripSeine(); + DataReferenceList<TripSeineDto> tripSeineSet = tripSeineService.getAllTripSeine(); existingTrip.addAll(tripSeineSet.getReferences()); TripLonglineService tripLonglineService = safeCentralSource.newTripLonglineService(); - DataReferenceSet<TripLonglineDto> tripLonglineSet = tripLonglineService.getAllTripLongline(); + DataReferenceList<TripLonglineDto> tripLonglineSet = tripLonglineService.getAllTripLongline(); existingTrip.addAll(tripLonglineSet.getReferences()); selectionDataModel.setExistingTrips(existingTrip); diff --git a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/longline/TripLonglineServiceController.java b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/longline/TripLonglineServiceController.java index 44de008..046cab5 100644 --- a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/longline/TripLonglineServiceController.java +++ b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/longline/TripLonglineServiceController.java @@ -25,7 +25,7 @@ package fr.ird.observe.application.web.controller.v1.data.longline; import com.google.common.collect.ImmutableList; import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -46,12 +46,12 @@ public class TripLonglineServiceController extends ObserveAuthenticatedServiceCo } @Override - public DataReferenceSet<TripLonglineDto> getAllTripLongline() { + public DataReferenceList<TripLonglineDto> getAllTripLongline() { return service.getAllTripLongline(); } @Override - public DataReferenceSet<TripLonglineDto> getTripLonglineByProgram(String programId) { + public DataReferenceList<TripLonglineDto> getTripLonglineByProgram(String programId) { return service.getTripLonglineByProgram(programId); } diff --git a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/seine/TripSeineServiceController.java b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/seine/TripSeineServiceController.java index d1527e4..f36de46 100644 --- a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/seine/TripSeineServiceController.java +++ b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/data/seine/TripSeineServiceController.java @@ -25,7 +25,7 @@ package fr.ird.observe.application.web.controller.v1.data.seine; import com.google.common.collect.ImmutableList; import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -46,12 +46,12 @@ public class TripSeineServiceController extends ObserveAuthenticatedServiceContr } @Override - public DataReferenceSet<TripSeineDto> getAllTripSeine() { + public DataReferenceList<TripSeineDto> getAllTripSeine() { return service.getAllTripSeine(); } @Override - public DataReferenceSet<TripSeineDto> getTripSeineByProgram(String programId) { + public DataReferenceList<TripSeineDto> getTripSeineByProgram(String programId) { return service.getTripSeineByProgram(programId); } diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java index 504afdd..a2ba40b 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java @@ -30,10 +30,12 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.actions.report.ReportVariable; import fr.ird.observe.services.dto.gson.reference.DataReferenceAdapter; +import fr.ird.observe.services.dto.gson.reference.DataReferenceListAdapter; import fr.ird.observe.services.dto.gson.reference.DataReferenceSetAdapter; import fr.ird.observe.services.dto.gson.reference.ReferentialReferenceAdapter; import fr.ird.observe.services.dto.gson.reference.ReferentialReferenceSetAdapter; @@ -105,6 +107,7 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(ReferentialReference.class, new ReferentialReferenceAdapter()); gsonBuilder.registerTypeAdapter(AbstractReference.class, new UnknownReferenceAdapter()); gsonBuilder.registerTypeAdapter(DataReferenceSet.class, new DataReferenceSetAdapter()); + gsonBuilder.registerTypeAdapter(DataReferenceList.class, new DataReferenceListAdapter<>()); gsonBuilder.registerTypeAdapter(ReferentialReferenceSet.class, new ReferentialReferenceSetAdapter()); gsonBuilder.registerTypeAdapter(Form.class, new FormAdapter()); diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceListAdapter.java similarity index 71% copy from services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java copy to services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceListAdapter.java index f8287d3..57b8baa 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceListAdapter.java @@ -22,13 +22,14 @@ package fr.ird.observe.services.dto.gson.reference; * #L% */ -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableCollection; +import com.google.common.collect.ImmutableList; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; /** @@ -36,18 +37,23 @@ import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; * * @author Tony Chemit - chemit@codelutin.com */ -public class DataReferenceSetAdapter<D extends DataDto> extends AbstractReferenceSetAdapter<D, DataReference<D>, DataReferenceSet<D>> { +public class DataReferenceListAdapter<D extends DataDto> extends ReferenceCollectionSupportAdapter<D, DataReference<D>, ImmutableList<DataReference<D>>, DataReferenceList<D>> { protected final DataReferenceAdapter<D> referenceAdapter = new DataReferenceAdapter<>(); @Override + protected ImmutableCollection.Builder<DataReference<D>> createCollectionBuilder() { + return ImmutableList.builder(); + } + + @Override protected ReferenceSetDefinition<D> getDefintion(Class<D> dtoType) { return referenceAdapter.getDefinition(dtoType); } @Override - protected DataReferenceSet<D> newReferenceSet(Class<D> dtoType, ImmutableSet<DataReference<D>> references, JsonObject jsonObject, JsonDeserializationContext context) { - return DataReferenceSet.of(dtoType, references); + protected DataReferenceList<D> newReferenceSet(Class<D> dtoType, ImmutableList<DataReference<D>> references, JsonObject jsonObject, JsonDeserializationContext context) { + return DataReferenceList.of(dtoType, references); } @Override diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java index f8287d3..d5727da 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java @@ -22,6 +22,7 @@ package fr.ird.observe.services.dto.gson.reference; * #L% */ +import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableSet; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; @@ -36,11 +37,16 @@ import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; * * @author Tony Chemit - chemit@codelutin.com */ -public class DataReferenceSetAdapter<D extends DataDto> extends AbstractReferenceSetAdapter<D, DataReference<D>, DataReferenceSet<D>> { +public class DataReferenceSetAdapter<D extends DataDto> extends ReferenceCollectionSupportAdapter<D, DataReference<D>, ImmutableSet<DataReference<D>>, DataReferenceSet<D>> { protected final DataReferenceAdapter<D> referenceAdapter = new DataReferenceAdapter<>(); @Override + protected ImmutableCollection.Builder<DataReference<D>> createCollectionBuilder() { + return ImmutableSet.builder(); + } + + @Override protected ReferenceSetDefinition<D> getDefintion(Class<D> dtoType) { return referenceAdapter.getDefinition(dtoType); } diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceSetAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferenceCollectionSupportAdapter.java similarity index 73% rename from services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceSetAdapter.java rename to services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferenceCollectionSupportAdapter.java index 15348c5..2d1edec 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceSetAdapter.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferenceCollectionSupportAdapter.java @@ -22,7 +22,7 @@ package fr.ird.observe.services.dto.gson.reference; * #L% */ -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableCollection; import com.google.gson.JsonArray; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; @@ -30,8 +30,8 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import fr.ird.observe.services.dto.AbstractReference; -import fr.ird.observe.services.dto.AbstractReferenceSet; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceCollectionSupport; import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; import java.lang.reflect.Type; @@ -42,25 +42,25 @@ import java.lang.reflect.Type; * * @author Tony Chemit - chemit@codelutin.com */ -public abstract class AbstractReferenceSetAdapter<D extends IdDto, R extends AbstractReference<D>, S extends AbstractReferenceSet<D, R>> implements JsonDeserializer<S> { +public abstract class ReferenceCollectionSupportAdapter<D extends IdDto, R extends AbstractReference<D>, C extends ImmutableCollection<R>, S extends ReferenceCollectionSupport<D, R, C>> implements JsonDeserializer<S> { @Override public final S deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { JsonObject jsonObject = json.getAsJsonObject(); - Class<D> dtoType = context.deserialize(jsonObject.get(AbstractReferenceSet.PROPERTY_TYPE), Class.class); + Class<D> dtoType = context.deserialize(jsonObject.get(ReferenceCollectionSupport.PROPERTY_TYPE), Class.class); ReferenceSetDefinition<D> definition = getDefintion(dtoType); String[] propertyNames = definition.getPropertyNames(); Class<?>[] propertyTypes = definition.getPropertyTypes(); - JsonArray jsonPropertyValues = jsonObject.get(AbstractReferenceSet.PROPERTY_REFERENCES).getAsJsonArray(); + JsonArray jsonPropertyValues = jsonObject.get(ReferenceCollectionSupport.PROPERTY_REFERENCES).getAsJsonArray(); int referencesSize = jsonPropertyValues.size(); - ImmutableSet.Builder<R> references = ImmutableSet.builder(); + C.Builder<R> references = createCollectionBuilder(); for (int i = 0; i < referencesSize; i++) { @@ -69,14 +69,16 @@ public abstract class AbstractReferenceSetAdapter<D extends IdDto, R extends Abs } - return newReferenceSet(dtoType, references.build(), jsonObject, context); + return newReferenceSet(dtoType, (C) references.build(), jsonObject, context); } + protected abstract C.Builder<R> createCollectionBuilder(); + protected abstract ReferenceSetDefinition<D> getDefintion(Class<D> dtoType); protected abstract R deserializeReference(JsonElement referenceJsonElement, JsonDeserializationContext context, Class<D> dtoType, String[] propertyNames, Class<?>... propertyTypes); - protected abstract S newReferenceSet(Class<D> dtoType, ImmutableSet<R> references, JsonObject jsonObject, JsonDeserializationContext context); + protected abstract S newReferenceSet(Class<D> dtoType, C references, JsonObject jsonObject, JsonDeserializationContext context); } diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java index 40971ae..8493542 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java @@ -22,6 +22,7 @@ package fr.ird.observe.services.dto.gson.reference; * #L% */ +import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableSet; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; @@ -38,11 +39,16 @@ import java.util.Date; * * @author Tony Chemit - chemit@codelutin.com */ -public class ReferentialReferenceSetAdapter<D extends ReferentialDto> extends AbstractReferenceSetAdapter<D, ReferentialReference<D>, ReferentialReferenceSet<D>> { +public class ReferentialReferenceSetAdapter<D extends ReferentialDto> extends ReferenceCollectionSupportAdapter<D, ReferentialReference<D>, ImmutableSet<ReferentialReference<D>>, ReferentialReferenceSet<D>> { protected final ReferentialReferenceAdapter<D> referenceAdapter = new ReferentialReferenceAdapter<>(); @Override + protected ImmutableCollection.Builder<ReferentialReference<D>> createCollectionBuilder() { + return ImmutableSet.builder(); + } + + @Override protected ReferentialReferenceSet<D> newReferenceSet(Class<D> dtoType, ImmutableSet<ReferentialReference<D>> references, JsonObject jsonObject, JsonDeserializationContext context) { JsonElement lastUpdateElement = jsonObject.get(ReferentialReferenceSet.PROPERTY_LAST_UPDATE); diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java b/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceList.java similarity index 62% copy from services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java copy to services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceList.java index 01e756c..88303b0 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceList.java @@ -23,27 +23,27 @@ package fr.ird.observe.services.dto; */ import com.google.common.base.MoreObjects; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; -public class DataReferenceSet<R extends DataDto> extends AbstractReferenceSet<R, DataReference<R>> { +public class DataReferenceList<R extends DataDto> extends ReferenceCollectionSupport<R, DataReference<R>, ImmutableList<DataReference<R>>> { private static final long serialVersionUID = 1L; - public static <R extends DataDto> DataReferenceSet<R> of(Class<R> type, - ImmutableSet<DataReference<R>> references) { + public static <R extends DataDto> DataReferenceList<R> of(Class<R> type, + ImmutableList<DataReference<R>> references) { - return new DataReferenceSet<>(type, references); + return new DataReferenceList<>(type, references); } @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(PROPERTY_TYPE, type.getSimpleName()) - .toString(); + .add(PROPERTY_TYPE, type.getSimpleName()) + .toString(); } - protected DataReferenceSet(Class<R> type, ImmutableSet<DataReference<R>> references) { + protected DataReferenceList(Class<R> type, ImmutableList<DataReference<R>> references) { super(type, references); } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java b/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java index 01e756c..eb852bd 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java @@ -25,7 +25,7 @@ package fr.ird.observe.services.dto; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableSet; -public class DataReferenceSet<R extends DataDto> extends AbstractReferenceSet<R, DataReference<R>> { +public class DataReferenceSet<R extends DataDto> extends ReferenceCollectionSupport<R, DataReference<R>, ImmutableSet<DataReference<R>>> { private static final long serialVersionUID = 1L; diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/AbstractReferenceSet.java b/services-dto/src/main/java/fr/ird/observe/services/dto/ReferenceCollectionSupport.java similarity index 82% rename from services-dto/src/main/java/fr/ird/observe/services/dto/AbstractReferenceSet.java rename to services-dto/src/main/java/fr/ird/observe/services/dto/ReferenceCollectionSupport.java index 69a1bee..329e460 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/AbstractReferenceSet.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/ReferenceCollectionSupport.java @@ -22,13 +22,13 @@ package fr.ird.observe.services.dto; * #L% */ -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableCollection; import com.google.common.collect.Iterables; import java.io.Serializable; import java.util.Optional; -public abstract class AbstractReferenceSet<D extends IdDto, R extends AbstractReference<D>> implements ObserveDto, Serializable { +public abstract class ReferenceCollectionSupport<D extends IdDto, R extends AbstractReference<D>, C extends ImmutableCollection<R>> implements ObserveDto, Serializable { public static final String PROPERTY_TYPE = "type"; @@ -38,9 +38,9 @@ public abstract class AbstractReferenceSet<D extends IdDto, R extends AbstractRe protected final Class<D> type; - protected final ImmutableSet<R> references; + protected final C references; - protected AbstractReferenceSet(Class<D> type, ImmutableSet<R> references) { + protected ReferenceCollectionSupport(Class<D> type, C references) { this.type = type; this.references = references; } @@ -65,7 +65,7 @@ public abstract class AbstractReferenceSet<D extends IdDto, R extends AbstractRe return references.size(); } - public ImmutableSet<R> getReferences() { + public C getReferences() { return references; } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java index ab51fea..3f84707 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java @@ -24,11 +24,11 @@ package fr.ird.observe.services.dto.referential; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.AbstractReferenceSet; +import fr.ird.observe.services.dto.ReferenceCollectionSupport; import java.util.Date; -public class ReferentialReferenceSet<R extends ReferentialDto> extends AbstractReferenceSet<R, ReferentialReference<R>> { +public class ReferentialReferenceSet<R extends ReferentialDto> extends ReferenceCollectionSupport<R, ReferentialReference<R>, ImmutableSet<ReferentialReference<R>>> { public static final String PROPERTY_LAST_UPDATE = "lastUpdate"; @@ -60,8 +60,8 @@ public class ReferentialReferenceSet<R extends ReferentialDto> extends AbstractR @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(PROPERTY_TYPE, type.getName()) - .add(PROPERTY_LAST_UPDATE, lastUpdate) - .toString(); + .add(PROPERTY_TYPE, type.getName()) + .add(PROPERTY_LAST_UPDATE, lastUpdate) + .toString(); } } diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java index 2bfc71d..fe64581 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineGearUseServiceRestTest.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.rest.service.seine; */ import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.IdHelper; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; @@ -59,7 +59,7 @@ public class TripSeineGearUseServiceRestTest extends AbstractServiceRestTest { public void loadToReadTest() { - DataReferenceSet<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); + DataReferenceList<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); Map<String, DataReference<TripSeineDto>> tripIds = DataReference.splitById(allTripSeine.getReferences()); @@ -121,7 +121,7 @@ public class TripSeineGearUseServiceRestTest extends AbstractServiceRestTest { @Test public void loadToEditTest() { - DataReferenceSet<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); + DataReferenceList<TripSeineDto> allTripSeine = newService(TripSeineService.class).getAllTripSeine(); Map<String, DataReference<TripSeineDto>> tripIds = DataReference.splitById(allTripSeine.getReferences()); diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineServiceRestTest.java b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineServiceRestTest.java index a52827d..a1c6ffa 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineServiceRestTest.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/service/seine/TripSeineServiceRestTest.java @@ -24,7 +24,7 @@ package fr.ird.observe.services.rest.service.seine; import com.google.common.collect.Iterables; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.HarbourDto; import fr.ird.observe.services.dto.referential.OceanDto; @@ -58,7 +58,7 @@ public class TripSeineServiceRestTest extends AbstractServiceRestTest { @Test public void getTripSeineByProgramTest() { - DataReferenceSet<TripSeineDto> stubDtos = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); + DataReferenceList<TripSeineDto> stubDtos = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); Assert.assertNotNull(stubDtos); @@ -216,7 +216,7 @@ public class TripSeineServiceRestTest extends AbstractServiceRestTest { service.delete(ObserveFixtures.TRIP_SEINE_ID_1); - DataReferenceSet<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); + DataReferenceList<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); Assert.assertEquals(2, tripSeineByProgram.sizeReference()); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java index ba7bfd2..a75e59b 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java @@ -22,18 +22,17 @@ package fr.ird.observe.services.topia; * #L% */ +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.ObserveDataEntity; import fr.ird.observe.entities.ObserveEntity; import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.topia.binder.BinderEngine; -import fr.ird.observe.services.topia.binder.data.DataBinderSupport; -import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataFileDto; import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.IdDto; @@ -46,6 +45,9 @@ import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.result.SaveResultHelper; import fr.ird.observe.services.service.ConcurrentModificationException; import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.observe.services.topia.binder.BinderEngine; +import fr.ird.observe.services.topia.binder.data.DataBinderSupport; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaDao; @@ -319,6 +321,24 @@ public abstract class ObserveServiceTopia implements ObserveService { } + protected <D extends DataDto, E extends ObserveDataEntity> DataReferenceList<D> toDataReferenceList(Class<D> dtoType, List<E> allStubByTripId) { + + DataBinderSupport<E, D> binder = getDataBinder(dtoType); + + ReferentialLocale referentialLocale = getReferentialLocale(); + + ImmutableList.Builder<DataReference<D>> references = ImmutableList.builder(); + for (E activitySeine : allStubByTripId) { + + DataReference<D> reference = binder.toDataReference(referentialLocale, activitySeine); + references.add(reference); + + } + + return DataReferenceList.of(dtoType, references.build()); + + } + protected <D extends ReferentialDto, E extends ObserveReferentialEntity> ReferentialReferenceSet<D> toReferentialReferenceSet(Class<D> dtoType, List<E> allStubByTripId, Date lastUpdate) { ReferentialBinderSupport<E, D> binder = getReferentialBinder(dtoType); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/NavigationServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/NavigationServiceTopia.java index 61fb2c7..f2dbafc 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/NavigationServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/NavigationServiceTopia.java @@ -22,13 +22,12 @@ package fr.ird.observe.services.topia.service.data; * #L% */ -import com.google.common.collect.HashMultimap; +import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; -import com.google.common.collect.Multimap; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineHelper; import fr.ird.observe.services.dto.referential.ProgramDto; @@ -63,12 +62,12 @@ public class NavigationServiceTopia extends ObserveServiceTopia implements Navig boolean loadSeine = request.isLoadSeine(); boolean loadEmptyProgram = request.isLoadEmptyProgram(); - Multimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> tripsSeineByProgram = HashMultimap.create(); - Multimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> tripsLonglineByProgram = HashMultimap.create(); + ArrayListMultimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> tripsSeineByProgram = ArrayListMultimap.create(); + ArrayListMultimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> tripsLonglineByProgram = ArrayListMultimap.create(); if (loadSeine) { TripSeineService service = serviceContext.newService(TripSeineService.class); - DataReferenceSet<TripSeineDto> trips = service.getAllTripSeine(); + DataReferenceList<TripSeineDto> trips = service.getAllTripSeine(); for (DataReference<TripSeineDto> reference : trips.getReferences()) { String programId = TripSeineHelper.getProgramId(reference); ReferentialReference<ProgramDto> program = programsById.get(programId); @@ -79,7 +78,7 @@ public class NavigationServiceTopia extends ObserveServiceTopia implements Navig if (loadLongline) { TripLonglineService service = serviceContext.newService(TripLonglineService.class); - DataReferenceSet<TripLonglineDto> trips = service.getAllTripLongline(); + DataReferenceList<TripLonglineDto> trips = service.getAllTripLongline(); for (DataReference<TripLonglineDto> reference : trips.getReferences()) { String programId = TripLonglineHelper.getProgramId(reference); ReferentialReference<ProgramDto> program = programsById.get(programId); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/TripLonglineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/TripLonglineServiceTopia.java index 09dbd0e..1deee60 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/TripLonglineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/longline/TripLonglineServiceTopia.java @@ -33,11 +33,8 @@ import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.referentiel.Species2; import fr.ird.observe.entities.referentiel.SpeciesList; -import fr.ird.observe.services.service.data.longline.TripLonglineService; -import fr.ird.observe.services.topia.ObserveServiceTopia; -import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; @@ -48,6 +45,9 @@ import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.services.dto.result.SaveResultDto; +import fr.ird.observe.services.service.data.longline.TripLonglineService; +import fr.ird.observe.services.topia.ObserveServiceTopia; +import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.topia.service.data.TripMapDtoFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -55,6 +55,7 @@ import org.nuiton.util.DateUtil; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.LinkedHashSet; import java.util.List; @@ -67,26 +68,26 @@ public class TripLonglineServiceTopia extends ObserveServiceTopia implements Tri private static final Log log = LogFactory.getLog(TripLonglineServiceTopia.class); @Override - public DataReferenceSet<TripLonglineDto> getAllTripLongline() { + public DataReferenceList<TripLonglineDto> getAllTripLongline() { if (log.isTraceEnabled()) { log.trace("getAllTripLongline()"); } List<TripLongline> tripLonglines = loadEntities(TripLongline.class); - - return toDataReferenceSet(TripLonglineDto.class, tripLonglines); + tripLonglines.sort(Comparator.comparing(TripLongline::getStartDate)); + return toDataReferenceList(TripLonglineDto.class, tripLonglines); } @Override - public DataReferenceSet<TripLonglineDto> getTripLonglineByProgram(String programId) { + public DataReferenceList<TripLonglineDto> getTripLonglineByProgram(String programId) { if (log.isTraceEnabled()) { log.trace("getTripLonglineByProgram(" + programId + ")"); } List<TripLongline> tripLonglines = getDao().findAllStubByProgramId(programId, getReferentialLocale().ordinal()); - - return toDataReferenceSet(TripLonglineDto.class, tripLonglines); + tripLonglines.sort(Comparator.comparing(TripLongline::getStartDate)); + return toDataReferenceList(TripLonglineDto.class, tripLonglines); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java index e5c5791..8a23634 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopia.java @@ -33,7 +33,7 @@ import fr.ird.observe.entities.referentiel.SpeciesList; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.entities.seine.TripSeineTopiaDao; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; @@ -54,6 +54,7 @@ import org.nuiton.util.DateUtil; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.LinkedHashSet; import java.util.List; @@ -70,19 +71,19 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe } @Override - public DataReferenceSet<TripSeineDto> getAllTripSeine() { + public DataReferenceList<TripSeineDto> getAllTripSeine() { if (log.isTraceEnabled()) { log.trace("getAllTripSeine()"); } List<TripSeine> tripSeines = loadEntities(TripSeine.class); - - return toDataReferenceSet(TripSeineDto.class, tripSeines); + tripSeines.sort(Comparator.comparing(TripSeine::getStartDate)); + return toDataReferenceList(TripSeineDto.class, tripSeines); } @Override - public DataReferenceSet<TripSeineDto> getTripSeineByProgram(String programId) { + public DataReferenceList<TripSeineDto> getTripSeineByProgram(String programId) { if (log.isTraceEnabled()) { log.trace("getTripSeineByProgram(" + programId + ")"); } @@ -93,8 +94,8 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe loadEntity(ProgramDto.class, programId); List<TripSeine> tripSeines = getDao().findAllStubByProgramId(programId, referenceLocale.ordinal()); - - return toDataReferenceSet(TripSeineDto.class, tripSeines); + tripSeines.sort(Comparator.comparing(TripSeine::getStartDate)); + return toDataReferenceList(TripSeineDto.class, tripSeines); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/referential/ReferentialServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/referential/ReferentialServiceTopia.java index 6ae7ac5..1585de8 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/referential/ReferentialServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/referential/ReferentialServiceTopia.java @@ -50,12 +50,12 @@ import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; -import fr.ird.observe.services.service.sql.AddSqlScriptProducerResult; import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.observe.services.service.referential.MissingReferentialResult; import fr.ird.observe.services.service.referential.ReferenceSetsRequest; import fr.ird.observe.services.service.referential.ReferentialService; +import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; +import fr.ird.observe.services.service.sql.AddSqlScriptProducerResult; import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.topia.service.actions.synchro.referential.sql.ReplaceSqlStatementGenerator; @@ -269,12 +269,12 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe if (ObserveReferentialEntity.class.isAssignableFrom(type)) { Class<ReferentialDto> dtoType = BINDER_ENGINE.getReferentialDtoType((Class) type); - ReferentialReferenceSet referenceSet = toReferentialReferenceSet(dtoType, (List) entities, null); + ReferentialReferenceSet<?> referenceSet = toReferentialReferenceSet(dtoType, (List) entities, null); result.put(dtoType, referenceSet.getReferences()); } else { Class<DataDto> dtoType = BINDER_ENGINE.getDataDtoType((Class) type); - DataReferenceSet referenceSet = toDataReferenceSet(dtoType, (List) entities); + DataReferenceSet<?> referenceSet = toDataReferenceSet(dtoType, (List) entities); result.put(dtoType, referenceSet.getReferences()); } diff --git a/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopiaTest.java b/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopiaTest.java index a46c850..36f2bbb 100644 --- a/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopiaTest.java +++ b/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopiaTest.java @@ -24,7 +24,7 @@ package fr.ird.observe.services.topia.service.data; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; @@ -90,13 +90,13 @@ public class TripManagementServiceTopiaTest extends AbstractServiceTopiaTest { @Test public void deleteTrip() { - DataReferenceSet<TripSeineDto> allTripSeineBefore = tripSeineService.getAllTripSeine(); + DataReferenceList<TripSeineDto> allTripSeineBefore = tripSeineService.getAllTripSeine(); DeleteTripRequest request = new DeleteTripRequest(ObserveFixtures.PROGRAM_ID, ObserveFixtures.TRIP_SEINE_ID_1); DeleteTripResult result = tripManagementService.deleteTrip(request); Assert.assertNotNull(result); - DataReferenceSet<TripSeineDto> allTripSeineAfter = tripSeineService.getAllTripSeine(); + DataReferenceList<TripSeineDto> allTripSeineAfter = tripSeineService.getAllTripSeine(); Assert.assertTrue(allTripSeineBefore.sizeReference() == allTripSeineAfter.sizeReference() + 1); } diff --git a/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopiaTest.java b/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopiaTest.java index 796ee20..1b9829d 100644 --- a/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopiaTest.java +++ b/services-topia/src/test/java/fr/ird/observe/services/topia/service/data/seine/TripSeineServiceTopiaTest.java @@ -24,7 +24,7 @@ package fr.ird.observe.services.topia.service.data.seine; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.HarbourDto; import fr.ird.observe.services.dto.referential.OceanDto; @@ -74,7 +74,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { @Test public void getTripSeineByProgramTest() { - DataReferenceSet<TripSeineDto> stubDtos = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); + DataReferenceList<TripSeineDto> stubDtos = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); Assert.assertNotNull(stubDtos); @@ -324,7 +324,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { service.delete(ObserveFixtures.TRIP_SEINE_ID_1); - DataReferenceSet<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); + DataReferenceList<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(ObserveFixtures.PROGRAM_ID); Assert.assertEquals(2, tripSeineByProgram.sizeReference()); diff --git a/services/src/main/java/fr/ird/observe/services/service/data/longline/TripLonglineService.java b/services/src/main/java/fr/ird/observe/services/service/data/longline/TripLonglineService.java index 74e398a..f18f4eb 100644 --- a/services/src/main/java/fr/ird/observe/services/service/data/longline/TripLonglineService.java +++ b/services/src/main/java/fr/ird/observe/services/service/data/longline/TripLonglineService.java @@ -25,7 +25,7 @@ package fr.ird.observe.services.service.data.longline; import com.google.common.collect.ImmutableList; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -46,10 +46,11 @@ import java.util.List; public interface TripLonglineService extends ObserveService { @ReadDataPermission - DataReferenceSet<TripLonglineDto> getAllTripLongline(); + DataReferenceList<TripLonglineDto> getAllTripLongline(); + //FIXME Revoe this method (no more used) @ReadDataPermission - DataReferenceSet<TripLonglineDto> getTripLonglineByProgram(String programId); + DataReferenceList<TripLonglineDto> getTripLonglineByProgram(String programId); @ReadDataPermission int getTripLonglinePositionInProgram(String programId, String tripLonglineId); diff --git a/services/src/main/java/fr/ird/observe/services/service/data/seine/TripSeineService.java b/services/src/main/java/fr/ird/observe/services/service/data/seine/TripSeineService.java index 59b6a17..958767d 100644 --- a/services/src/main/java/fr/ird/observe/services/service/data/seine/TripSeineService.java +++ b/services/src/main/java/fr/ird/observe/services/service/data/seine/TripSeineService.java @@ -25,7 +25,7 @@ package fr.ird.observe.services.service.data.seine; import com.google.common.collect.ImmutableList; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -46,10 +46,11 @@ import java.util.List; public interface TripSeineService extends ObserveService { @ReadDataPermission - DataReferenceSet<TripSeineDto> getAllTripSeine(); + DataReferenceList<TripSeineDto> getAllTripSeine(); + //FIXME Revoe this method (no more used) @ReadDataPermission - DataReferenceSet<TripSeineDto> getTripSeineByProgram(String programId); + DataReferenceList<TripSeineDto> getTripSeineByProgram(String programId); @ReadDataPermission int getTripSeinePositionInProgram(String programId, String tripSeineId); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit c95396f96f5dde1bd8ef00297418a0162d2862ff Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 10:08:23 2016 +0100 Impossible d'exporter des marées en mode serveur (Fixes #8862) --- .../dto/gson/ObserveBlobsContainerAdapter.java | 37 ++++++++++++++++++++++ .../services/dto/gson/ObserveDtoGsonSupplier.java | 2 ++ .../services/dto}/ObserveBlobsContainer.java | 2 +- .../services/rest/http/ObserveResponseBuilder.java | 29 ++++++++--------- .../service/data/ImportTripScriptTopiaSqlWork.java | 2 +- .../service/data/TripManagementServiceTopia.java | 2 +- .../service/sql/SqlScriptProducerServiceTopia.java | 2 +- .../services/service/data/ExportTripResult.java | 2 +- .../services/service/data/ImportTripRequest.java | 2 +- .../service/sql/AddSqlScriptProducerResult.java | 1 + 10 files changed, 60 insertions(+), 21 deletions(-) diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveBlobsContainerAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveBlobsContainerAdapter.java new file mode 100644 index 0000000..72094a7 --- /dev/null +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveBlobsContainerAdapter.java @@ -0,0 +1,37 @@ +package fr.ird.observe.services.dto.gson; +import com.google.common.collect.ImmutableMap; +import com.google.common.reflect.TypeParameter; +import com.google.common.reflect.TypeToken; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import fr.ird.observe.services.dto.ObserveBlobsContainer; +import java.lang.reflect.Type; +import java.util.Map; +/** + * Created on 10/12/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class ObserveBlobsContainerAdapter implements JsonDeserializer<ObserveBlobsContainer> { + @Override + public ObserveBlobsContainer deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException { + JsonObject jsonObject = json.getAsJsonObject(); + String tableName = jsonObject.get("tableName").getAsString(); + String columnName = jsonObject.get("columnName").getAsString(); + Type mapType = mapOf(TypeToken.of(String.class), TypeToken.of(byte[].class)).getType(); + Map<String, byte[]> blobsById = context.deserialize(jsonObject.get("blobsById"), mapType); + return new ObserveBlobsContainer(tableName, columnName, ImmutableMap.copyOf(blobsById)); + } + static <K, V> TypeToken<Map<K, V>> mapOf(TypeToken<K> keyType, TypeToken<V> valueType) { + return new TypeToken<Map<K, V>>() { + } + .where(new TypeParameter<K>() { + }, keyType) + .where(new TypeParameter<V>() { + }, valueType); + } +} diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java index a2ba40b..9f653eb 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java @@ -33,6 +33,7 @@ import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataReferenceList; import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.Form; +import fr.ird.observe.services.dto.ObserveBlobsContainer; import fr.ird.observe.services.dto.actions.report.ReportVariable; import fr.ird.observe.services.dto.gson.reference.DataReferenceAdapter; import fr.ird.observe.services.dto.gson.reference.DataReferenceListAdapter; @@ -102,6 +103,7 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(ImmutableSet.class, new ImmutableSetAdapter()); gsonBuilder.registerTypeAdapter(ImmutableMap.class, new ImmutableMapAdapter()); gsonBuilder.registerTypeAdapter(ImmutableMultimap.class, new ImmutableMultimapAdapter()); + gsonBuilder.registerTypeAdapter(ObserveBlobsContainer.class, new ObserveBlobsContainerAdapter()); gsonBuilder.registerTypeAdapter(DataReference.class, new DataReferenceAdapter()); gsonBuilder.registerTypeAdapter(ReferentialReference.class, new ReferentialReferenceAdapter()); diff --git a/services/src/main/java/fr/ird/observe/services/service/sql/ObserveBlobsContainer.java b/services-dto/src/main/java/fr/ird/observe/services/dto/ObserveBlobsContainer.java similarity index 97% rename from services/src/main/java/fr/ird/observe/services/service/sql/ObserveBlobsContainer.java rename to services-dto/src/main/java/fr/ird/observe/services/dto/ObserveBlobsContainer.java index c846a47..69ed4de 100644 --- a/services/src/main/java/fr/ird/observe/services/service/sql/ObserveBlobsContainer.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/ObserveBlobsContainer.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.service.sql; +package fr.ird.observe.services.dto; /*- * #%L diff --git a/services-rest/src/main/java/fr/ird/observe/services/rest/http/ObserveResponseBuilder.java b/services-rest/src/main/java/fr/ird/observe/services/rest/http/ObserveResponseBuilder.java index 9cf9581..f3e3838 100644 --- a/services-rest/src/main/java/fr/ird/observe/services/rest/http/ObserveResponseBuilder.java +++ b/services-rest/src/main/java/fr/ird/observe/services/rest/http/ObserveResponseBuilder.java @@ -251,9 +251,7 @@ public class ObserveResponseBuilder { if (timeout != null) { - RequestConfig requestConfig = RequestConfig.custom() - .setConnectTimeout(timeout) - .build(); + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).build(); // HttpParams httpParams = new BasicHttpParams(); // httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout); @@ -262,35 +260,36 @@ public class ObserveResponseBuilder { // postMethod.setParams(httpParams); } + MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create(); + if (request.withoutFiles()) { addHeaders(postMethod, request.getHeaders()); - addParameters(postMethod, contentType, request.getParameters()); addRequestBody(postMethod, contentType, requestBody); + + for (NameValuePair param : request.getParameters()) { + if (StringUtils.isBlank(contentType)) { + contentType = "text/plain"; + } + entityBuilder.addTextBody(param.getName(), param.getValue(), ContentType.create(contentType, StandardCharsets.UTF_8)); + } } else { addHeaders(postMethod, request.getHeaders()); - addParameters(postMethod, contentType, request.getParameters()); addRequestBody(postMethod, contentType, requestBody); - MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create(); - -// MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); for (Map.Entry<String, File> paramFile : request.getFiles().entrySet()) { - multipartEntityBuilder.addBinaryBody(paramFile.getKey(), paramFile.getValue()); -// entity.addPart(paramFile.getKey(), new FileBody(paramFile.getValue())); + entityBuilder.addBinaryBody(paramFile.getKey(), paramFile.getValue()); } for (NameValuePair param : request.getParameters()) { if (StringUtils.isBlank(contentType)) { contentType = "text/plain"; } - multipartEntityBuilder.addTextBody(param.getName(), param.getValue(), ContentType.create(contentType, StandardCharsets.UTF_8)); - -// entity.addPart(param.getName(), new StringBody(param.getValue(), contentType, -// Charset.forName("UTF-8"))); + entityBuilder.addTextBody(param.getName(), param.getValue(), ContentType.create(contentType, StandardCharsets.UTF_8)); } - postMethod.setEntity(multipartEntityBuilder.build()); } + postMethod.setEntity(entityBuilder.build()); + HttpResponse response = executeRequest(postMethod); if (log.isDebugEnabled()) { diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java index 60b7fb2..f693cda 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java @@ -24,7 +24,7 @@ package fr.ird.observe.services.topia.service.data; import com.google.common.collect.ImmutableSet; import fr.ird.observe.RunScriptTopiaSqlWork; -import fr.ird.observe.services.service.sql.ObserveBlobsContainer; +import fr.ird.observe.services.dto.ObserveBlobsContainer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java index cd7c876..2f2ee56 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java @@ -35,7 +35,7 @@ import fr.ird.observe.services.service.data.TripManagementService; import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.AddSqlScriptProducerResult; import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest; -import fr.ird.observe.services.service.sql.ObserveBlobsContainer; +import fr.ird.observe.services.dto.ObserveBlobsContainer; import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.services.topia.ObserveServiceContextTopia; import fr.ird.observe.services.topia.ObserveServiceTopia; diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java index 34cf494..90002a4 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java @@ -31,7 +31,7 @@ import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.AddSqlScriptProducerResult; import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest; -import fr.ird.observe.services.service.sql.ObserveBlobsContainer; +import fr.ird.observe.services.dto.ObserveBlobsContainer; import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.services.topia.ObserveServiceTopia; import org.apache.commons.collections4.CollectionUtils; diff --git a/services/src/main/java/fr/ird/observe/services/service/data/ExportTripResult.java b/services/src/main/java/fr/ird/observe/services/service/data/ExportTripResult.java index af32fb1..5d9e19e 100644 --- a/services/src/main/java/fr/ird/observe/services/service/data/ExportTripResult.java +++ b/services/src/main/java/fr/ird/observe/services/service/data/ExportTripResult.java @@ -24,7 +24,7 @@ package fr.ird.observe.services.service.data; import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.dto.ObserveDto; -import fr.ird.observe.services.service.sql.ObserveBlobsContainer; +import fr.ird.observe.services.dto.ObserveBlobsContainer; /** * Created on 27/08/16. diff --git a/services/src/main/java/fr/ird/observe/services/service/data/ImportTripRequest.java b/services/src/main/java/fr/ird/observe/services/service/data/ImportTripRequest.java index fc14c0a..48a9ae6 100644 --- a/services/src/main/java/fr/ird/observe/services/service/data/ImportTripRequest.java +++ b/services/src/main/java/fr/ird/observe/services/service/data/ImportTripRequest.java @@ -24,7 +24,7 @@ package fr.ird.observe.services.service.data; import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.dto.ObserveDto; -import fr.ird.observe.services.service.sql.ObserveBlobsContainer; +import fr.ird.observe.services.dto.ObserveBlobsContainer; /** * Created on 27/08/16. diff --git a/services/src/main/java/fr/ird/observe/services/service/sql/AddSqlScriptProducerResult.java b/services/src/main/java/fr/ird/observe/services/service/sql/AddSqlScriptProducerResult.java index f46a184..49ccb01 100644 --- a/services/src/main/java/fr/ird/observe/services/service/sql/AddSqlScriptProducerResult.java +++ b/services/src/main/java/fr/ird/observe/services/service/sql/AddSqlScriptProducerResult.java @@ -23,6 +23,7 @@ package fr.ird.observe.services.service.sql; */ import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.ObserveBlobsContainer; /** * Created on 24/08/16. -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 5b96c2440679694b3881cc6af49b7a12e4483dd0 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 10:12:42 2016 +0100 Mémorisation du dernier dossier utilisé (Fixes #8864) --- .../src/main/config/ObserveSwingApplication.ini | 8 ++++++++ .../i18n/application-swing-configuration_en_GB.properties | 1 + .../i18n/application-swing-configuration_es_ES.properties | 1 + .../i18n/application-swing-configuration_fr_FR.properties | 1 + .../swing/ui/actions/menu/config/ShowConfigAction.java | 1 + .../ui/actions/menu/storage/ImportStorageFromFileAction.java | 9 +++++++++ 6 files changed, 21 insertions(+) diff --git a/application-swing-configuration/src/main/config/ObserveSwingApplication.ini b/application-swing-configuration/src/main/config/ObserveSwingApplication.ini index e6af8a9..fbfece9 100644 --- a/application-swing-configuration/src/main/config/ObserveSwingApplication.ini +++ b/application-swing-configuration/src/main/config/ObserveSwingApplication.ini @@ -53,6 +53,14 @@ defaultValue = ${data.directory}/backup transient = true final = true +[option importDirectory] +description = observe.config.importDirectory.description +key = import.directory +type = file +defaultValue = ${data.directory}/backup +transient = true +final = true + [option resourcesDirectory] description = observe.config.defaultResourcesDirectory.description key = resources.directory diff --git a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties index 01a1a88..dbd5181 100644 --- a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties +++ b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties @@ -31,6 +31,7 @@ observe.config.h2.can.migrate.description=Flag to know if you can migrate h2 dat observe.config.h2.login.description=H2 Login observe.config.h2.password.description=H2 Password observe.config.h2.serverPort.description=Server port number +observe.config.importDirectory.description=Import directory observe.config.logConfigurationFile.description=Log file configuration observe.config.map.background.description=Color of background observe.config.map.layer1.description=File (shapefile) for layer 1 of map diff --git a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties index 283976a..28a7a37 100644 --- a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties +++ b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties @@ -31,6 +31,7 @@ observe.config.h2.can.migrate.description=Autorizar la actualización de las bas observe.config.h2.login.description=Login h2 observe.config.h2.password.description=Contraseña h2 observe.config.h2.serverPort.description=Puerto del servidor h2 +observe.config.importDirectory.description=Répertoire où chercher les imports \#TODO observe.config.logConfigurationFile.description=Archivo de configuration de los logs observe.config.map.background.description=Color del fondo del mapa observe.config.map.layer1.description=Archivo (shapeFiles) del primer calco del mapa diff --git a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties index 0cbe9ca..ccdc3e7 100644 --- a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties +++ b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties @@ -31,6 +31,7 @@ observe.config.h2.can.migrate.description=Autoriser la mise à jour des bases lo observe.config.h2.login.description=Le login h2 observe.config.h2.password.description=Le mot de passe h2 observe.config.h2.serverPort.description=Port du serveur h2 +observe.config.importDirectory.description=Répertoire où chercher les imports observe.config.logConfigurationFile.description=Fichier de configuration des logs observe.config.map.background.description=Couleur du fond de carte observe.config.map.layer1.description=Fichier (shapeFiles) du premier calque de la carte diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/config/ShowConfigAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/config/ShowConfigAction.java index ba319f6..a5be9e4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/config/ShowConfigAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/config/ShowConfigAction.java @@ -259,6 +259,7 @@ public class ShowConfigAction extends AbstractUIAction { helper.addOption(ObserveSwingApplicationConfigOption.DATA_DIRECTORY); helper.addOption(ObserveSwingApplicationConfigOption.DB_DIRECTORY); helper.addOption(ObserveSwingApplicationConfigOption.BACKUP_DIRECTORY); + helper.addOption(ObserveSwingApplicationConfigOption.IMPORT_DIRECTORY); helper.addOption(ObserveSwingApplicationConfigOption.TMP_DIRECTORY); helper.addOption(ObserveSwingApplicationConfigOption.VALIDATION_REPORT_DIRECTORY); helper.addOption(ObserveSwingApplicationConfigOption.RESOURCES_DIRECTORY); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ImportStorageFromFileAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ImportStorageFromFileAction.java index 010eb3a..097ee60 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ImportStorageFromFileAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ImportStorageFromFileAction.java @@ -23,6 +23,7 @@ package fr.ird.observe.application.swing.ui.actions.menu.storage; */ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.configuration.constants.CreationMode; import fr.ird.observe.application.swing.configuration.constants.DbMode; import fr.ird.observe.application.swing.ui.ObserveMainUI; @@ -34,6 +35,7 @@ import fr.ird.observe.application.swing.ui.storage.StorageUILauncher; import fr.ird.observe.application.swing.ui.storage.StorageUIModel; import java.awt.event.ActionEvent; +import java.io.File; import static org.nuiton.i18n.I18n.t; @@ -69,6 +71,8 @@ public class ImportStorageFromFileAction extends AbstractUIAction { super.init(ui); StorageUIModel model = ui.getModel(); + model.setDumpFile(getMainUI().getConfig().getImportDirectory()); + model.setCanCreateLocalService(true); model.setCanUseLocalService(false); model.setCanUseRemoteService(false); @@ -91,6 +95,11 @@ public class ImportStorageFromFileAction extends AbstractUIAction { super.doAction(ui); StorageUIHandler handler = getStorageUIHandler(); handler.doChangeStorage(ui.getModel()); + + File importDirectory = ui.getModel().getDumpFile().getParentFile(); + ObserveSwingApplicationConfig config = getMainUI().getConfig(); + config.setImportDirectory(importDirectory); + config.saveForUser(); } }.start(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 15510ffba2edd15b75104a63a1c52e01e1822113 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 10:13:41 2016 +0100 Problème de chargement du fichier des talbeaux de synthèse (Fixes #8865) --- .../fr/ird/observe/application/swing/ui/admin/report/ReportModel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java index 3ce26e8..a6de627 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java @@ -119,6 +119,8 @@ public class ReportModel extends AdminActionModel { variables = new TreeMap<>(); // quand le type de modèle change, on mets à jour les rapports disponibles addPropertyChangeListener(MODEL_TYPE_PROPERTY_NAME, evt -> updateReports()); + addPropertyChangeListener(REPORT_FILE_PROPERTY_NAME, evt -> updateReports()); + } public List<Report> loadReports(URL resource) throws IOException { @@ -140,8 +142,6 @@ public class ReportModel extends AdminActionModel { Object old = this.reportFile; this.reportFile = reportFile; firePropertyChange(REPORT_FILE_PROPERTY_NAME, old, reportFile); - reports = null; - getReports(); } public boolean isAutoCopyToClipboard() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 6caccbb0dbc4f4de227f4d527e052c2e6610b20a Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 10:18:27 2016 +0100 [persistence] Toujours utiliser la configuration hibernate customisé même pour les services de topia (Fixes #8868) --- .../fr/ird/observe/ObserveTopiaApplicationContext.java | 16 ++-------------- .../java/fr/ird/observe/ObserveTopiaConfiguration.java | 10 +++++++--- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java index 2b038e3..4debf52 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java @@ -32,7 +32,6 @@ import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; -import org.nuiton.topia.persistence.HibernateAvailableSettings; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.internal.support.TopiaMetadataModelSupportImpl; import org.nuiton.topia.persistence.jdbc.JdbcH2Helper; @@ -51,7 +50,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.LinkedHashSet; import java.util.Objects; -import java.util.Properties; import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; @@ -94,16 +92,6 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat this.topiaMetadataModelSupport = new TopiaMetadataModelSupportImpl("fr.ird.observe", "Observe"); this.topiaSqlTablesFactory = new TopiaSqlTablesFactory(getMetadataModel(), this); this.observeMigrationConfigurationProvider = ObserveMigrationConfigurationProvider.get(); - - // La valeur par défaut dans ToPIA est 20 et c'est trop peu - //FIXME Il semblerait que l'export d'une marée consome une connection mais ne la rend pas - //FIXME On devrait du coup limiter le nombre de marées à exporter (200-300) - Properties properties = new Properties(); - properties.put(HibernateAvailableSettings.C3P0_MAX_SIZE, 500); - properties.put(HibernateAvailableSettings.C3P0_MAX_STATEMENTS, 500); - properties.put(HibernateAvailableSettings.C3P0_TIMEOUT, 100); - getHibernateProvider().getHibernateConfiguration().addProperties(properties); - } @Override @@ -308,7 +296,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat basketTable.getWhereClauseAlias(), ImmutableSet.of(" INNER JOIN observe_longline.set set ON set.topiaId = activity.set", " INNER JOIN observe_longline.basket basket ON basket.set = set.topiaId" - ), + ), null); tripLonglineTables.replaceTable("observe_longline.basket", basketTable); @@ -325,7 +313,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat ImmutableSet.of(" INNER JOIN observe_longline.set set ON set.topiaId = activity.set", " INNER JOIN observe_longline.basket basket ON basket.set = set.topiaId", " INNER JOIN observe_longline.branchline branchline ON branchline.basket = basket.topiaId" - ), + ), null); tripLonglineTables.replaceTable("observe_longline.branchline", branchlineTable); diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java index 2eb67ef..939cbd9 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java @@ -4,7 +4,7 @@ package fr.ird.observe; * #%L * ObServe :: Entities * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -22,8 +22,8 @@ package fr.ird.observe; * #L% */ -import com.google.common.collect.ImmutableMap; import org.nuiton.topia.persistence.BeanTopiaConfiguration; +import org.nuiton.topia.persistence.HibernateAvailableSettings; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; /** @@ -43,8 +43,12 @@ public class ObserveTopiaConfiguration extends BeanTopiaConfiguration { this.h2Configuration = h2Configuration; this.showSql = showSql; if (showSql) { - setHibernateExtraConfiguration(ImmutableMap.of("hibernate.show_sql", Boolean.TRUE.toString())); + hibernateExtraConfiguration.put("hibernate.show_sql", Boolean.TRUE.toString()); } + hibernateExtraConfiguration.put(HibernateAvailableSettings.CONNECTION_PROVIDER, "org.hibernate.c3p0.internal.C3P0ConnectionProvider"); + hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_SIZE, "500"); + hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_STATEMENTS, "500"); + hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_TIMEOUT, "100"); } public boolean isH2Configuration() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 0af7509b63bb0975ed89121692f4e3ecb442388c Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 12:15:52 2016 +0100 [iso] différentes adaptations suite aux test en mode serveur --- .../menu/storage/ImportStorageFromFileAction.java | 2 +- .../swing/ui/admin/export/ExportUIHandler.java | 5 ++- .../swing/ui/storage/StorageUILauncher.java | 6 +--- .../DataSourceMigrationForVersion_6_0.java | 2 +- .../dto/gson/ArrayListMultimapAdapter.java | 41 +++++---------------- .../services/dto/gson/ImmutableMapAdapter.java | 11 ++---- .../dto/gson/ImmutableMultimapAdapter.java | 11 +----- .../services/dto/gson/ImmutableSetAdapter.java | 6 ++-- ...MapAdapter.java => MultimapAdapterSupport.java} | 32 ++++++++++------- .../dto/gson/ObserveBlobsContainerAdapter.java | 25 +++++++------ .../services/dto/gson/ObserveDtoGsonSupplier.java | 18 +++++++++- .../services/dto/gson/SetMultimapAdapter.java | 42 ++++++---------------- .../dto/referential/LengthLengthParameterDto.java | 10 +++--- .../dto/referential/LengthWeightParameterDto.java | 10 +++--- .../dto/referential/ReferentialMultimap.java | 16 ++++----- .../referential/ReferentialServiceTopia.java | 4 +-- .../services/service/data/NavigationRequest.java | 4 ++- .../services/service/data/NavigationResult.java | 10 +++--- 18 files changed, 112 insertions(+), 143 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ImportStorageFromFileAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ImportStorageFromFileAction.java index 097ee60..5c96c62 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ImportStorageFromFileAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ImportStorageFromFileAction.java @@ -93,7 +93,7 @@ public class ImportStorageFromFileAction extends AbstractUIAction { @Override protected void doAction(StorageUI ui) { super.doAction(ui); - StorageUIHandler handler = getStorageUIHandler(); + StorageUIHandler handler = ui.getHandler(); handler.doChangeStorage(ui.getModel()); File importDirectory = ui.getModel().getDumpFile().getParentFile(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java index 32748d7..f871165 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java @@ -247,7 +247,6 @@ public class ExportUIHandler extends AdminTabUIHandler<ExportUI> implements UIHa TripManagementService centralTripManagementService = centralDataSource.newTripManagementService(); - ReferentialService centraltReferentialService = centralDataSource.newReferentialService(); // chargement du référentiel de la base centrale @@ -269,8 +268,8 @@ public class ExportUIHandler extends AdminTabUIHandler<ExportUI> implements UIHa if (!insertMissingReferentials && result != null) { // l'export n'est pas possible - UIHelper.displayInfo(t("observe.actions.exportData.error.missingReferentialsId")); - + UIHelper.displayWarning(t("observe.title.can.not.export.data"), t("observe.actions.exportData.error.missingReferentialsId")); + sendMessage(t("observe.actions.exportData.error.missingReferentialsId")); return WizardState.CANCELED; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java index bb3f4e0..50e6cf0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java @@ -102,10 +102,6 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod super.doAction(ui); } - protected StorageUIHandler getStorageUIHandler() { - return ui.getContextValue(StorageUIHandler.class); - } - @Override protected void doClose(StorageUI ui, boolean wasCanceled) { if (log.isDebugEnabled()) { @@ -153,7 +149,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod model.setCanUseServerService(modes.contains(DbMode.USE_SERVER)); model.updateUniverse(); - model.setDbMode(modes.stream().findFirst().get()); + model.setDbMode(modes.stream().findFirst().orElse(DbMode.USE_LOCAL)); } else { ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); diff --git a/entities-migration/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_6_0.java b/entities-migration/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_6_0.java index 95958f6..fe55699 100644 --- a/entities-migration/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_6_0.java +++ b/entities-migration/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_6_0.java @@ -96,7 +96,7 @@ public class DataSourceMigrationForVersion_6_0 extends AbstractObserveMigrationC .put("L1", "PDL") .put("LC", "DL") .put("LT", "TL") -// .put("", "TL") + .put("", "TL") .build(); List<String> lengthMeasureTypes = topiaSqlSupport.findMultipleResult(new TopiaSqlQuery<String>() { diff --git a/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ArrayListMultimapAdapter.java similarity index 51% copy from services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java copy to services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ArrayListMultimapAdapter.java index 4eeb5c2..42c7f3f 100644 --- a/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ArrayListMultimapAdapter.java @@ -1,8 +1,8 @@ -package fr.ird.observe.services.service.data; +package fr.ird.observe.services.dto.gson; -/*- +/* * #%L - * ObServe :: Services + * ObServe :: Services model * %% * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit * %% @@ -22,40 +22,17 @@ package fr.ird.observe.services.service.data; * #L% */ +import com.google.common.collect.ArrayListMultimap; + /** - * Created on 22/11/16. - * * @author Tony Chemit - chemit@codelutin.com * @since 6.0 */ -public class NavigationRequest { - - - private boolean loadSeine; - private boolean loadLongline; - private boolean loadEmptyProgram; - - public boolean isLoadSeine() { - return loadSeine; - } - - public void setLoadSeine(boolean loadSeine) { - this.loadSeine = loadSeine; - } - - public boolean isLoadLongline() { - return loadLongline; - } +public class ArrayListMultimapAdapter extends MultimapAdapterSupport<ArrayListMultimap> { - public void setLoadLongline(boolean loadLongline) { - this.loadLongline = loadLongline; + @Override + protected ArrayListMultimap createMultimap() { + return ArrayListMultimap.create(); } - public void setLoadEmptyProgram(boolean loadEmptyProgram) { - this.loadEmptyProgram = loadEmptyProgram; - } - - public boolean isLoadEmptyProgram() { - return loadEmptyProgram; - } } diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMapAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMapAdapter.java index 919cf0d..f88c91b 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMapAdapter.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMapAdapter.java @@ -23,7 +23,6 @@ package fr.ird.observe.services.dto.gson; */ import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeParameter; import com.google.common.reflect.TypeToken; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; @@ -37,7 +36,7 @@ import java.util.Map; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class ImmutableMapAdapter implements JsonDeserializer<ImmutableMap<?, ?>>{ +public class ImmutableMapAdapter implements JsonDeserializer<ImmutableMap<?, ?>> { @Override public ImmutableMap deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException { @@ -46,16 +45,10 @@ public class ImmutableMapAdapter implements JsonDeserializer<ImmutableMap<?, ?>> Type keyType = actualTypeArguments[0]; Type valueType = actualTypeArguments[1]; - Type type2 = mapOf(TypeToken.of(keyType), TypeToken.of(valueType)).getType(); + Type type2 = ObserveDtoGsonSupplier.mapOf(TypeToken.of(keyType), TypeToken.of(valueType)).getType(); Map map = context.deserialize(json, type2); return ImmutableMap.copyOf(map); } - static <K, V> TypeToken<Map<K, V>> mapOf(TypeToken<K> keyType, TypeToken<V> valueType) { - return new TypeToken<Map<K, V>>() {} - .where(new TypeParameter<K>() {}, keyType) - .where(new TypeParameter<V>() {}, valueType); - } - } diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMultimapAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMultimapAdapter.java index 204c81a..2a257f7 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMultimapAdapter.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMultimapAdapter.java @@ -24,7 +24,6 @@ package fr.ird.observe.services.dto.gson; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSetMultimap; -import com.google.common.reflect.TypeParameter; import com.google.common.reflect.TypeToken; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; @@ -35,7 +34,6 @@ import com.google.gson.JsonSerializer; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; -import java.util.Collection; import java.util.List; import java.util.Map; @@ -59,7 +57,7 @@ public class ImmutableMultimapAdapter implements JsonSerializer<ImmutableMultima Type keyType = actualTypeArguments[0]; Type valueType = actualTypeArguments[1]; - Type type2 = mapOf(TypeToken.of(keyType), TypeToken.of(valueType)).getType(); + Type type2 = ObserveDtoGsonSupplier.mapOf(TypeToken.of(keyType), TypeToken.of(valueType)).getType(); Map map = context.deserialize(json, type2); for (Object key : map.keySet()) { @@ -74,11 +72,4 @@ public class ImmutableMultimapAdapter implements JsonSerializer<ImmutableMultima } - - static <K, V> TypeToken<Map<K, Collection<V>>> mapOf(TypeToken<K> keyType, TypeToken<V> valueType) { - return new TypeToken<Map<K, Collection<V>>>() {} - .where(new TypeParameter<K>() {}, keyType) - .where(new TypeParameter<V>() {}, valueType); - } - } diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableSetAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableSetAdapter.java index f84f0d3..76cfc94 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableSetAdapter.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableSetAdapter.java @@ -52,7 +52,9 @@ public class ImmutableSetAdapter implements JsonDeserializer<ImmutableSet<?>> { } static <E> TypeToken<Set<E>> setOf(TypeToken<E> subType) { - return new TypeToken<Set<E>>() {} - .where(new TypeParameter<E>() {}, subType); + return new TypeToken<Set<E>>() { + } + .where(new TypeParameter<E>() { + }, subType); } } diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMapAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/MultimapAdapterSupport.java similarity index 59% copy from services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMapAdapter.java copy to services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/MultimapAdapterSupport.java index 919cf0d..f2ee6e1 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ImmutableMapAdapter.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/MultimapAdapterSupport.java @@ -22,40 +22,48 @@ package fr.ird.observe.services.dto.gson; * #L% */ -import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeParameter; +import com.google.common.collect.Multimap; import com.google.common.reflect.TypeToken; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonParseException; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; +import java.util.List; import java.util.Map; /** - * @author Sylvain Bavencoff - bavencoff@codelutin.com + * @author Tony Chemit - chemit@codelutin.com + * @since 6.0 */ -public class ImmutableMapAdapter implements JsonDeserializer<ImmutableMap<?, ?>>{ +public abstract class MultimapAdapterSupport<M extends Multimap> implements JsonDeserializer<M>, JsonSerializer<M> { + + protected abstract M createMultimap(); @Override - public ImmutableMap deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException { + public M deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException { Type[] actualTypeArguments = ((ParameterizedType) type).getActualTypeArguments(); Type keyType = actualTypeArguments[0]; Type valueType = actualTypeArguments[1]; - Type type2 = mapOf(TypeToken.of(keyType), TypeToken.of(valueType)).getType(); + Type type2 = ObserveDtoGsonSupplier.mapOf(TypeToken.of(keyType), TypeToken.of(valueType)).getType(); Map map = context.deserialize(json, type2); - return ImmutableMap.copyOf(map); + M result = createMultimap(); + for (Object key : map.keySet()) { + List multimapValues = (List) map.get(key); + result.putAll(key, multimapValues); + } + return result; } - static <K, V> TypeToken<Map<K, V>> mapOf(TypeToken<K> keyType, TypeToken<V> valueType) { - return new TypeToken<Map<K, V>>() {} - .where(new TypeParameter<K>() {}, keyType) - .where(new TypeParameter<V>() {}, valueType); + @Override + public JsonElement serialize(M src, Type typeOfSrc, JsonSerializationContext context) { + return context.serialize(src.asMap()); } - } diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveBlobsContainerAdapter.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveBlobsContainerAdapter.java index 72094a7..91dce46 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveBlobsContainerAdapter.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveBlobsContainerAdapter.java @@ -1,37 +1,42 @@ package fr.ird.observe.services.dto.gson; + import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeParameter; import com.google.common.reflect.TypeToken; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; import fr.ird.observe.services.dto.ObserveBlobsContainer; + import java.lang.reflect.Type; import java.util.Map; + /** * Created on 10/12/16. * * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class ObserveBlobsContainerAdapter implements JsonDeserializer<ObserveBlobsContainer> { +public class ObserveBlobsContainerAdapter implements JsonDeserializer<ObserveBlobsContainer>, JsonSerializer<ObserveBlobsContainer> { @Override public ObserveBlobsContainer deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException { JsonObject jsonObject = json.getAsJsonObject(); String tableName = jsonObject.get("tableName").getAsString(); String columnName = jsonObject.get("columnName").getAsString(); - Type mapType = mapOf(TypeToken.of(String.class), TypeToken.of(byte[].class)).getType(); + Type mapType = ObserveDtoGsonSupplier.mapOf(TypeToken.of(String.class), TypeToken.of(byte[].class)).getType(); Map<String, byte[]> blobsById = context.deserialize(jsonObject.get("blobsById"), mapType); return new ObserveBlobsContainer(tableName, columnName, ImmutableMap.copyOf(blobsById)); } - static <K, V> TypeToken<Map<K, V>> mapOf(TypeToken<K> keyType, TypeToken<V> valueType) { - return new TypeToken<Map<K, V>>() { - } - .where(new TypeParameter<K>() { - }, keyType) - .where(new TypeParameter<V>() { - }, valueType); + + @Override + public JsonElement serialize(ObserveBlobsContainer src, Type typeOfSrc, JsonSerializationContext context) { + JsonObject element = new JsonObject(); + element.add("tableName", context.serialize(src.getTableName())); + element.add("columnName", context.serialize(src.getColumnName())); + element.add("blobsById", context.serialize(src.getBlobsById().asMultimap().asMap())); + return element; } } diff --git a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java index 9f653eb..c321c31 100644 --- a/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java @@ -22,10 +22,14 @@ package fr.ird.observe.services.dto.gson; * #L% */ +import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.SetMultimap; +import com.google.common.reflect.TypeParameter; +import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import fr.ird.observe.services.dto.AbstractReference; @@ -47,7 +51,9 @@ import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import org.nuiton.version.Version; import java.sql.Blob; +import java.util.Collection; import java.util.Date; +import java.util.Map; import java.util.function.Supplier; /** @@ -72,6 +78,12 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { this.prettyPrint = prettyPrint; } + public static <K, V> TypeToken<Map<K, Collection<V>>> mapOf(TypeToken<K> keyType, TypeToken<V> valueType) { + return new TypeToken<Map<K, Collection<V>>>() {} + .where(new TypeParameter<K>() {}, keyType) + .where(new TypeParameter<V>() {}, valueType); + } + @Override public Gson get() { if (gson == null) { @@ -102,7 +114,12 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(ImmutableList.class, new ImmutableListAdapter()); gsonBuilder.registerTypeAdapter(ImmutableSet.class, new ImmutableSetAdapter()); gsonBuilder.registerTypeAdapter(ImmutableMap.class, new ImmutableMapAdapter()); + gsonBuilder.registerTypeAdapter(ImmutableMultimap.class, new ImmutableMultimapAdapter()); + gsonBuilder.registerTypeAdapter(SetMultimap.class, new SetMultimapAdapter()); + gsonBuilder.registerTypeAdapter(ArrayListMultimap.class, new ArrayListMultimapAdapter()); + gsonBuilder.registerTypeAdapter(ReferentialMultimap.class, new ReferentialMultimapAdapter()); + gsonBuilder.registerTypeAdapter(ObserveBlobsContainer.class, new ObserveBlobsContainerAdapter()); gsonBuilder.registerTypeAdapter(DataReference.class, new DataReferenceAdapter()); @@ -116,7 +133,6 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(ReportVariable.class, new ReportVariableAdapter()); gsonBuilder.registerTypeAdapter(Version.class, new VersionAdapter()); - gsonBuilder.registerTypeAdapter(ReferentialMultimap.class, new ReferentialMultimapAdapter()); gsonBuilder.enableComplexMapKeySerialization(); } return gsonBuilder; diff --git a/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/SetMultimapAdapter.java similarity index 51% copy from services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java copy to services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/SetMultimapAdapter.java index 4eeb5c2..a8afee7 100644 --- a/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java +++ b/services-dto-gson/src/main/java/fr/ird/observe/services/dto/gson/SetMultimapAdapter.java @@ -1,8 +1,8 @@ -package fr.ird.observe.services.service.data; +package fr.ird.observe.services.dto.gson; -/*- +/* * #%L - * ObServe :: Services + * ObServe :: Services model * %% * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit * %% @@ -22,40 +22,18 @@ package fr.ird.observe.services.service.data; * #L% */ +import com.google.common.collect.HashMultimap; +import com.google.common.collect.SetMultimap; + /** - * Created on 22/11/16. - * * @author Tony Chemit - chemit@codelutin.com * @since 6.0 */ -public class NavigationRequest { - - - private boolean loadSeine; - private boolean loadLongline; - private boolean loadEmptyProgram; - - public boolean isLoadSeine() { - return loadSeine; - } - - public void setLoadSeine(boolean loadSeine) { - this.loadSeine = loadSeine; - } - - public boolean isLoadLongline() { - return loadLongline; - } +public class SetMultimapAdapter extends MultimapAdapterSupport<SetMultimap> { - public void setLoadLongline(boolean loadLongline) { - this.loadLongline = loadLongline; + @Override + protected SetMultimap createMultimap() { + return HashMultimap.create(); } - public void setLoadEmptyProgram(boolean loadEmptyProgram) { - this.loadEmptyProgram = loadEmptyProgram; - } - - public boolean isLoadEmptyProgram() { - return loadEmptyProgram; - } } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/LengthLengthParameterDto.java b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/LengthLengthParameterDto.java index 8d88dd8..69461da 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/LengthLengthParameterDto.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/LengthLengthParameterDto.java @@ -28,12 +28,12 @@ public class LengthLengthParameterDto extends GeneratedLengthLengthParameterDto private static final long serialVersionUID = 1L; - private Map<String, Double> coefficients; + private Map<String, Double> coefficientsValues; @Override public void setCoefficients(String coefficients) { super.setCoefficients(coefficients); - this.coefficients = null; + this.coefficientsValues = null; revalidateFormulaOne(); revalidateFormulaTwo(); } @@ -62,9 +62,9 @@ public class LengthLengthParameterDto extends GeneratedLengthLengthParameterDto @Override public Map<String, Double> getCoefficientValues() { - if (coefficients == null) { - coefficients = FormulaHelper.getCoefficientValues(this); + if (coefficientsValues == null) { + coefficientsValues = FormulaHelper.getCoefficientValues(this); } - return coefficients; + return coefficientsValues; } } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/LengthWeightParameterDto.java b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/LengthWeightParameterDto.java index 8c45c8b..e7bf3d2 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/LengthWeightParameterDto.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/LengthWeightParameterDto.java @@ -28,12 +28,12 @@ public class LengthWeightParameterDto extends GeneratedLengthWeightParameterDto private static final long serialVersionUID = 1L; - private Map<String, Double> coefficients; + private Map<String, Double> coefficientsValues; @Override public void setCoefficients(String coefficients) { super.setCoefficients(coefficients); - this.coefficients = null; + this.coefficientsValues = null; revalidateFormulaOne(); revalidateFormulaTwo(); } @@ -62,9 +62,9 @@ public class LengthWeightParameterDto extends GeneratedLengthWeightParameterDto @Override public Map<String, Double> getCoefficientValues() { - if (coefficients == null) { - coefficients = FormulaHelper.getCoefficientValues(this); + if (coefficientsValues == null) { + coefficientsValues = FormulaHelper.getCoefficientValues(this); } - return coefficients; + return coefficientsValues; } } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialMultimap.java b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialMultimap.java index f770dbd..4eddb6d 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialMultimap.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ReferentialMultimap.java @@ -35,14 +35,14 @@ import java.util.Objects; /** * @author smaisonneuve - * Created on 17/08/16. + * Created on 17/08/16. */ public class ReferentialMultimap<K extends ReferentialDto> implements SetMultimap<Class<K>, K> { private ImmutableSetMultimap<Class<K>, K> immutableSetMultimap; public static <K extends ReferentialDto, V> ReferentialMultimap<K> of() { - return new ReferentialMultimap(); + return new ReferentialMultimap<>(); } public static <K extends ReferentialDto> ReferentialMultimap<K> of(Class<K> k1, K v1) { @@ -50,7 +50,7 @@ public class ReferentialMultimap<K extends ReferentialDto> implements SetMultima } public static <K extends ReferentialDto> ReferentialMultimap<K> copyOf(Multimap<Class<K>, K> multimap) { - return new ReferentialMultimap(multimap); + return new ReferentialMultimap<>(multimap); } public static <K extends ReferentialDto> Builder<K> builder() { @@ -58,20 +58,20 @@ public class ReferentialMultimap<K extends ReferentialDto> implements SetMultima } public static class Builder<K extends ReferentialDto> { - private final ImmutableSetMultimap.Builder builder = ImmutableSetMultimap.builder(); + private final ImmutableSetMultimap.Builder<Class<K>, K> builder = ImmutableSetMultimap.builder(); - public <K extends ReferentialDto> Builder add(K referentialDto) { + public Builder<K> add(K referentialDto) { Objects.requireNonNull(referentialDto, "Can't add a null object in ReferentialMultimap"); - builder.put(referentialDto.getClass(), referentialDto); + builder.put((Class) referentialDto.getClass(), referentialDto); return this; } - public <K extends ReferentialDto> Builder put(Class<K> dtoType, K referentialDto) { + public Builder put(Class<K> dtoType, K referentialDto) { builder.putAll(dtoType, referentialDto); return this; } - public <K extends ReferentialDto> Builder putAll(Class<K> dtoType, Collection<K> values) { + public Builder putAll(Class<K> dtoType, Collection<K> values) { builder.putAll(dtoType, values); return this; } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/referential/ReferentialServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/referential/ReferentialServiceTopia.java index 1585de8..2dbceb4 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/referential/ReferentialServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/referential/ReferentialServiceTopia.java @@ -56,10 +56,10 @@ import fr.ird.observe.services.service.referential.ReferenceSetsRequest; import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.AddSqlScriptProducerResult; +import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.topia.service.actions.synchro.referential.sql.ReplaceSqlStatementGenerator; -import fr.ird.observe.services.topia.service.sql.SqlScriptProducerServiceTopia; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaDao; @@ -347,7 +347,7 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe } } - SqlScriptProducerServiceTopia sqlScriptProducerService = serviceContext.newService(SqlScriptProducerServiceTopia.class); + SqlScriptProducerService sqlScriptProducerService = serviceContext.newService(SqlScriptProducerService.class); AddSqlScriptProducerResult addSqlScriptProducerResult = sqlScriptProducerService.produceAddSqlScript(request); return MissingReferentialResult.of(missingReferentialIds, addSqlScriptProducerResult.getSqlCode()); diff --git a/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java b/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java index 4eeb5c2..3bf279a 100644 --- a/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java +++ b/services/src/main/java/fr/ird/observe/services/service/data/NavigationRequest.java @@ -22,13 +22,15 @@ package fr.ird.observe.services.service.data; * #L% */ +import fr.ird.observe.services.dto.ObserveDto; + /** * Created on 22/11/16. * * @author Tony Chemit - chemit@codelutin.com * @since 6.0 */ -public class NavigationRequest { +public class NavigationRequest implements ObserveDto { private boolean loadSeine; diff --git a/services/src/main/java/fr/ird/observe/services/service/data/NavigationResult.java b/services/src/main/java/fr/ird/observe/services/service/data/NavigationResult.java index 33e7e5f..19748f7 100644 --- a/services/src/main/java/fr/ird/observe/services/service/data/NavigationResult.java +++ b/services/src/main/java/fr/ird/observe/services/service/data/NavigationResult.java @@ -22,9 +22,11 @@ package fr.ird.observe.services.service.data; * #L% */ +import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.ObserveDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -36,13 +38,13 @@ import fr.ird.observe.services.dto.seine.TripSeineDto; * @author Tony Chemit - chemit@codelutin.com * @since 6.0 */ -public class NavigationResult { +public class NavigationResult implements ObserveDto { private final ImmutableSet<ReferentialReference<ProgramDto>> programs; - private final Multimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> tripsSeineByProgram; - private final Multimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> tripsLonglineByProgram; + private final ArrayListMultimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> tripsSeineByProgram; + private final ArrayListMultimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> tripsLonglineByProgram; - public NavigationResult(ImmutableSet<ReferentialReference<ProgramDto>> programs, Multimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> tripsSeineByProgram, Multimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> tripsLonglineByProgram) { + public NavigationResult(ImmutableSet<ReferentialReference<ProgramDto>> programs, ArrayListMultimap<ReferentialReference<ProgramDto>, DataReference<TripSeineDto>> tripsSeineByProgram, ArrayListMultimap<ReferentialReference<ProgramDto>, DataReference<TripLonglineDto>> tripsLonglineByProgram) { this.programs = programs; this.tripsSeineByProgram = tripsSeineByProgram; this.tripsLonglineByProgram = tripsLonglineByProgram; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit ec2f51d804f6dd7522c76f7063739b2fe5302f94 Merge: 7b7da62 0af7509 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 12:16:07 2016 +0100 Report from v5 Merge branch 'feature/report_from_5' into develop .../src/main/config/ObserveSwingApplication.ini | 8 +++++ ...pplication-swing-configuration_en_GB.properties | 1 + ...pplication-swing-configuration_es_ES.properties | 1 + ...pplication-swing-configuration_fr_FR.properties | 1 + .../ui/actions/menu/config/ShowConfigAction.java | 1 + .../menu/storage/ImportStorageFromFileAction.java | 11 +++++- .../swing/ui/admin/config/SelectDataModel.java | 6 ++-- .../swing/ui/admin/export/ExportUIHandler.java | 5 ++- .../swing/ui/admin/report/ReportModel.java | 4 +-- .../swing/ui/storage/StorageUILauncher.java | 6 +--- .../longline/TripLonglineServiceController.java | 6 ++-- .../v1/data/seine/TripSeineServiceController.java | 6 ++-- .../DataSourceMigrationForVersion_6_0.java | 2 +- .../observe/ObserveTopiaApplicationContext.java | 16 ++------- .../fr/ird/observe/ObserveTopiaConfiguration.java | 10 ++++-- pom.xml | 4 +-- .../dto/gson/ArrayListMultimapAdapter.java | 29 +++++---------- .../services/dto/gson/ImmutableMapAdapter.java | 11 ++---- .../dto/gson/ImmutableMultimapAdapter.java | 11 +----- .../services/dto/gson/ImmutableSetAdapter.java | 6 ++-- ...MapAdapter.java => MultimapAdapterSupport.java} | 32 ++++++++++------- .../dto/gson/ObserveBlobsContainerAdapter.java | 42 ++++++++++++++++++++++ .../services/dto/gson/ObserveDtoGsonSupplier.java | 23 +++++++++++- .../services/dto/gson/SetMultimapAdapter.java | 30 ++++++---------- ...tAdapter.java => DataReferenceListAdapter.java} | 16 ++++++--- .../gson/reference/DataReferenceSetAdapter.java | 8 ++++- ...java => ReferenceCollectionSupportAdapter.java} | 18 +++++----- .../reference/ReferentialReferenceSetAdapter.java | 8 ++++- ...ataReferenceSet.java => DataReferenceList.java} | 16 ++++----- .../ird/observe/services/dto/DataReferenceSet.java | 2 +- .../services/dto}/ObserveBlobsContainer.java | 2 +- ...nceSet.java => ReferenceCollectionSupport.java} | 10 +++--- .../dto/referential/LengthLengthParameterDto.java | 10 +++--- .../dto/referential/LengthWeightParameterDto.java | 10 +++--- .../dto/referential/ReferentialMultimap.java | 16 ++++----- .../dto/referential/ReferentialReferenceSet.java | 10 +++--- .../services/rest/http/ObserveResponseBuilder.java | 29 ++++++++------- .../seine/TripSeineGearUseServiceRestTest.java | 6 ++-- .../service/seine/TripSeineServiceRestTest.java | 6 ++-- .../services/topia/ObserveServiceTopia.java | 26 ++++++++++++-- .../service/data/ImportTripScriptTopiaSqlWork.java | 2 +- .../topia/service/data/NavigationServiceTopia.java | 13 ++++--- .../service/data/TripManagementServiceTopia.java | 2 +- .../data/longline/TripLonglineServiceTopia.java | 21 +++++------ .../service/data/seine/TripSeineServiceTopia.java | 15 ++++---- .../referential/ReferentialServiceTopia.java | 12 +++---- .../service/sql/SqlScriptProducerServiceTopia.java | 2 +- .../data/TripManagementServiceTopiaTest.java | 6 ++-- .../data/seine/TripSeineServiceTopiaTest.java | 6 ++-- .../services/service/data/ExportTripResult.java | 2 +- .../services/service/data/ImportTripRequest.java | 2 +- .../services/service/data/NavigationRequest.java | 4 ++- .../services/service/data/NavigationResult.java | 10 +++--- .../service/data/longline/TripLonglineService.java | 7 ++-- .../service/data/seine/TripSeineService.java | 7 ++-- .../service/sql/AddSqlScriptProducerResult.java | 1 + 56 files changed, 334 insertions(+), 243 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 23001bfb86e09aee20032679338561aa0c478826 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 11 12:54:06 2016 +0100 [iso] fix rest tests --- .../services/rest/RestTestMethodResource.java | 2 +- .../rest/service/AbstractServiceRestTest.java | 8 +-- .../topia/binder/data/DataBinderSupport.java | 2 +- .../services/topia/binder/BinderEngineTest.java | 2 +- .../ird/observe/test/ObserveTestConfiguration.java | 57 ++++++---------------- .../ird/observe/test/TestClassResourceSupport.java | 22 +++++++-- .../observe/test/TestMethodResourceSupport.java | 25 +++++++--- .../test/spi/DatabaseServerNameConfiguration.java | 45 +++++++++++++++++ test/src/main/resources/observetest.properties | 1 + 9 files changed, 104 insertions(+), 60 deletions(-) diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java b/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java index baaad59..a17640b 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java @@ -68,7 +68,7 @@ public class RestTestMethodResource extends TestMethodResourceSupport<RestTestCl Version modelVersion = ObserveTestConfiguration.getModelVersion(); - dataSourceConfiguration = testClassResource.createDataSourceConfigurationRest(testClass, null, modelVersion, getUrl(), getLogin(), getPassword()); + dataSourceConfiguration = testClassResource.createDataSourceConfigurationRest(testClass, getServerDbName(), modelVersion, getUrl(), getLogin(), getPassword()); checkServerIsAvailable(testClass, methodName); diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/service/AbstractServiceRestTest.java b/services-rest/src/test/java/fr/ird/observe/services/rest/service/AbstractServiceRestTest.java index 6307e28..212f4c9 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/service/AbstractServiceRestTest.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/service/AbstractServiceRestTest.java @@ -23,16 +23,17 @@ package fr.ird.observe.services.rest.service; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.rest.RestTestClassResource; -import fr.ird.observe.services.rest.RestTestMethodResource; -import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.rest.RestTestClassResource; +import fr.ird.observe.services.rest.RestTestMethodResource; import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.test.ObserveTestConfiguration; import fr.ird.observe.test.spi.DatabaseLoginConfiguration; import fr.ird.observe.test.spi.DatabasePasswordConfiguration; +import fr.ird.observe.test.spi.DatabaseServerNameConfiguration; import fr.ird.observe.test.spi.DatabaseUrlConfiguration; import org.junit.After; import org.junit.Before; @@ -45,6 +46,7 @@ import org.junit.Rule; @DatabaseLoginConfiguration(ObserveTestConfiguration.WEB_LOGIN) @DatabasePasswordConfiguration(ObserveTestConfiguration.WEB_PASSWORD) @DatabaseUrlConfiguration(ObserveTestConfiguration.WEB_URL) +@DatabaseServerNameConfiguration(ObserveTestConfiguration.WEB_DATABASE) public abstract class AbstractServiceRestTest { @ClassRule diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/DataBinderSupport.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/DataBinderSupport.java index 6ac8884..b4ed3bd 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/DataBinderSupport.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/DataBinderSupport.java @@ -197,7 +197,7 @@ public abstract class DataBinderSupport<E extends ObserveDataEntity, D extends D reference.setId(dto.getId()); // reference.setCreateDate(dto.getCreateDate()); -// reference.setVersion(dto.getVersion()); +// reference.setVersion(dto.getTestPropertyAsVersion()); reference.init(definition.getType(), definition.getPropertyNames(), values); diff --git a/services-topia/src/test/java/fr/ird/observe/services/topia/binder/BinderEngineTest.java b/services-topia/src/test/java/fr/ird/observe/services/topia/binder/BinderEngineTest.java index 91035ab..9161480 100644 --- a/services-topia/src/test/java/fr/ird/observe/services/topia/binder/BinderEngineTest.java +++ b/services-topia/src/test/java/fr/ird/observe/services/topia/binder/BinderEngineTest.java @@ -321,7 +321,7 @@ public class BinderEngineTest extends AbstractServiceTopiaTest { Assert.assertNotNull(dto); Assert.assertEquals(entity.getTopiaId(), dto.getId()); // Assert.assertEquals(entity.getTopiaCreateDate(), dto.getCreateDate()); -// Assert.assertEquals(entity.getTopiaVersion(), dto.getVersion()); +// Assert.assertEquals(entity.getTopiaVersion(), dto.getTestPropertyAsVersion()); E entity2 = dao.forTopiaIdEquals(entity.getTopiaId()).findUnique(); binderEngine.copyDataDtoToEntity(ReferentialLocale.FR, dto, entity2); diff --git a/test/src/main/java/fr/ird/observe/test/ObserveTestConfiguration.java b/test/src/main/java/fr/ird/observe/test/ObserveTestConfiguration.java index b5b79a3..dcbdc1b 100644 --- a/test/src/main/java/fr/ird/observe/test/ObserveTestConfiguration.java +++ b/test/src/main/java/fr/ird/observe/test/ObserveTestConfiguration.java @@ -27,6 +27,7 @@ import fr.ird.observe.test.spi.DatabaseClassifier; import fr.ird.observe.test.spi.DatabaseLoginConfiguration; import fr.ird.observe.test.spi.DatabaseNameConfiguration; import fr.ird.observe.test.spi.DatabasePasswordConfiguration; +import fr.ird.observe.test.spi.DatabaseServerNameConfiguration; import fr.ird.observe.test.spi.DatabaseUrlConfiguration; import fr.ird.observe.test.spi.DatabaseVersionConfiguration; import org.nuiton.version.Version; @@ -55,6 +56,7 @@ public class ObserveTestConfiguration { public static final String WEB_LOGIN = "observetest.web.login"; public static final String WEB_PASSWORD = "observetest.web.password"; public static final String WEB_URL = "observetest.web.url"; + public static final String WEB_DATABASE = "observetest.web.database"; public static final String OBSTUNA_URL = "observetest.obstuna.url"; public static final String OBSTUNA_LOGIN = "observetest.obstuna.login"; public static final String OBSTUNA_PASSWORD = "observetest.obstuna.password"; @@ -64,26 +66,26 @@ public class ObserveTestConfiguration { public static final String OBSTUNA_REFERENTIEL_LOGIN = "observetest.obstuna.referentiel.login"; public static Version getModelVersion() { - return getVersion(MODEL_VERSION); + return getTestPropertyAsVersion(MODEL_VERSION); } public static Version getPreviousModelVersion() { - return getVersion(PREVIOUS_VERSION); + return getTestPropertyAsVersion(PREVIOUS_VERSION); } public static Version getFirstModelVersion() { - return getVersion(FIRST_VERSION); + return getTestPropertyAsVersion(FIRST_VERSION); } - public static Version getVersion(String propertyName) { + public static Version getTestPropertyAsVersion(String propertyName) { return Versions.valueOf(getTestProperties().getProperty(propertyName)); } - public static String getLogin(String propertyName) { + public static String getTestPropertyAsString(String propertyName) { return getTestProperties().getProperty(propertyName); } - public static URL getUrl(String propertyName) { + public static URL getTestPropertyAsUrl(String propertyName) { String property = null; try { property = getTestProperties().getProperty(propertyName); @@ -93,46 +95,10 @@ public class ObserveTestConfiguration { } } - public static char[] getPassword(String propertyName) { + public static char[] getTestPropertyAsCharArray(String propertyName) { return getTestProperties().getProperty(propertyName).toCharArray(); } -// public static DatabaseNameConfiguration getDatabaseNameConfigurationAnnotation(Method testClassMethod, DatabaseClassifier classifier) { -// -// DatabaseNameConfiguration[] annotations = testClassMethod.getAnnotationsByType(DatabaseNameConfiguration.class); -// -// for (DatabaseNameConfiguration annotation : annotations) { -// if (classifier.equals(annotation.classifier())) { -// return annotation; -// } -// } -// return null; -// } - -// public static DatabaseVersionConfiguration getDatabaseVersionConfigurationAnnotation(Method testClassMethod, DatabaseClassifier classifier) { -// -// DatabaseVersionConfiguration[] annotations = testClassMethod.getAnnotationsByType(DatabaseVersionConfiguration.class); -// -// for (DatabaseVersionConfiguration annotation : annotations) { -// if (classifier.equals(annotation.classifier())) { -// return annotation; -// } -// } -// return null; -// } -// -// public static CopyDatabaseConfiguration getCopyDatabaseConfigurationAnnotation(Method testClassMethod, DatabaseClassifier classifier) { -// -// CopyDatabaseConfiguration[] annotations = testClassMethod.getAnnotationsByType(CopyDatabaseConfiguration.class); -// -// for (CopyDatabaseConfiguration annotation : annotations) { -// if (classifier.equals(annotation.classifier())) { -// return annotation; -// } -// } -// return null; -// } - public static DatabaseUrlConfiguration getDatabaseUrlConfigurationAnnotation(AnnotatedElement annotatedElement) { return getAnnotation(annotatedElement, DatabaseUrlConfiguration.class); @@ -150,6 +116,11 @@ public class ObserveTestConfiguration { return getAnnotation(annotatedElement, DatabasePasswordConfiguration.class); } + public static DatabaseServerNameConfiguration getDatabaseServerNameConfigurationAnnotation(AnnotatedElement annotatedElement) { + + return getAnnotation(annotatedElement, DatabaseServerNameConfiguration.class); + + } public static DatabaseNameConfiguration getDatabaseNameConfigurationAnnotation(AnnotatedElement testClass, DatabaseClassifier classifier) { diff --git a/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java b/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java index d108ad6..2a0b218 100644 --- a/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java +++ b/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java @@ -26,6 +26,7 @@ import fr.ird.observe.test.spi.DatabaseClassifier; import fr.ird.observe.test.spi.DatabaseLoginConfiguration; import fr.ird.observe.test.spi.DatabaseNameConfiguration; import fr.ird.observe.test.spi.DatabasePasswordConfiguration; +import fr.ird.observe.test.spi.DatabaseServerNameConfiguration; import fr.ird.observe.test.spi.DatabaseUrlConfiguration; import fr.ird.observe.test.spi.DatabaseVersionConfiguration; import org.apache.commons.logging.Log; @@ -59,6 +60,7 @@ public abstract class TestClassResourceSupport implements TestRule { private String dbName; private Version dbVersion; private URL url; + private String serverDbName; protected TestClassResourceSupport(DatabaseClassifier classifier) { this.classifier = classifier; @@ -96,6 +98,10 @@ public abstract class TestClassResourceSupport implements TestRule { return classifier; } + public String getServerDbName() { + return serverDbName; + } + @Override public final Statement apply(final Statement base, final Description description) { return new Statement() { @@ -123,12 +129,12 @@ public abstract class TestClassResourceSupport implements TestRule { DatabaseLoginConfiguration databaseLogin = ObserveTestConfiguration.getDatabaseLoginConfigurationAnnotation(testClass); if (databaseLogin != null) { - login = ObserveTestConfiguration.getLogin(databaseLogin.value()); + login = ObserveTestConfiguration.getTestPropertyAsString(databaseLogin.value()); } DatabasePasswordConfiguration databasePassword = ObserveTestConfiguration.getDatabasePasswordConfigurationAnnotation(testClass); if (databasePassword != null) { - password = ObserveTestConfiguration.getPassword(databasePassword.value()); + password = ObserveTestConfiguration.getTestPropertyAsCharArray(databasePassword.value()); } DatabaseNameConfiguration databaseNameConfiguration = ObserveTestConfiguration.getDatabaseNameConfigurationAnnotation(testClass, classifier); @@ -138,14 +144,20 @@ public abstract class TestClassResourceSupport implements TestRule { DatabaseVersionConfiguration databaseVersionConfiguration = ObserveTestConfiguration.getDatabaseVersionConfigurationAnnotation(testClass, classifier); if (databaseVersionConfiguration != null) { - dbVersion = ObserveTestConfiguration.getVersion(databaseVersionConfiguration.value()); + dbVersion = ObserveTestConfiguration.getTestPropertyAsVersion(databaseVersionConfiguration.value()); } - DatabaseUrlConfiguration databaseUrl = ObserveTestConfiguration.getDatabaseUrlConfigurationAnnotation(description.getTestClass()); + DatabaseUrlConfiguration databaseUrl = ObserveTestConfiguration.getDatabaseUrlConfigurationAnnotation(testClass); if (databaseUrl != null) { - url = ObserveTestConfiguration.getUrl(databaseUrl.value()); + url = ObserveTestConfiguration.getTestPropertyAsUrl(databaseUrl.value()); } + DatabaseServerNameConfiguration databaseServerNameConfiguration = ObserveTestConfiguration.getDatabaseServerNameConfigurationAnnotation(testClass); + if (databaseServerNameConfiguration != null) { + serverDbName = ObserveTestConfiguration.getTestPropertyAsString(databaseServerNameConfiguration.value()); + } + + } protected void after(Description description) throws IOException { diff --git a/test/src/main/java/fr/ird/observe/test/TestMethodResourceSupport.java b/test/src/main/java/fr/ird/observe/test/TestMethodResourceSupport.java index bc75eb1..41b0970 100644 --- a/test/src/main/java/fr/ird/observe/test/TestMethodResourceSupport.java +++ b/test/src/main/java/fr/ird/observe/test/TestMethodResourceSupport.java @@ -26,6 +26,7 @@ import com.google.common.base.Strings; import fr.ird.observe.test.spi.DatabaseLoginConfiguration; import fr.ird.observe.test.spi.DatabaseNameConfiguration; import fr.ird.observe.test.spi.DatabasePasswordConfiguration; +import fr.ird.observe.test.spi.DatabaseServerNameConfiguration; import fr.ird.observe.test.spi.DatabaseUrlConfiguration; import fr.ird.observe.test.spi.DatabaseVersionConfiguration; import org.apache.commons.logging.Log; @@ -61,6 +62,7 @@ public abstract class TestMethodResourceSupport<A extends TestClassResourceSuppo private Class<?> testClass; private String methodName; private String dbName; + private String serverDbName; private Version dbVersion; protected TestMethodResourceSupport(A testClassResource) { @@ -107,6 +109,10 @@ public abstract class TestMethodResourceSupport<A extends TestClassResourceSuppo return url; } + public String getServerDbName() { + return serverDbName; + } + protected void before(Description description) throws Throwable { testClass = description.getTestClass(); @@ -127,14 +133,14 @@ public abstract class TestMethodResourceSupport<A extends TestClassResourceSuppo if (databaseLogin == null) { login = testClassResource.getLogin(); } else { - login = ObserveTestConfiguration.getLogin(databaseLogin.value()); + login = ObserveTestConfiguration.getTestPropertyAsString(databaseLogin.value()); } DatabasePasswordConfiguration databasePassword = ObserveTestConfiguration.getDatabasePasswordConfigurationAnnotation(testClass); if (databasePassword == null) { password = testClassResource.getPassword(); } else { - password = ObserveTestConfiguration.getPassword(databasePassword.value()); + password = ObserveTestConfiguration.getTestPropertyAsCharArray(databasePassword.value()); } testClassMethod = testClass.getMethod(methodName); @@ -150,17 +156,24 @@ public abstract class TestMethodResourceSupport<A extends TestClassResourceSuppo } DatabaseVersionConfiguration databaseVersionConfiguration = ObserveTestConfiguration.getDatabaseVersionConfigurationAnnotation(testClassMethod, testClassResource.getClassifier()); - if (databaseVersionConfiguration != null) { - dbVersion = ObserveTestConfiguration.getVersion(databaseVersionConfiguration.value()); - } else { + if (databaseVersionConfiguration == null) { dbVersion = testClassResource.getDbVersion(); + } else { + dbVersion = ObserveTestConfiguration.getTestPropertyAsVersion(databaseVersionConfiguration.value()); } DatabaseUrlConfiguration databaseUrl = ObserveTestConfiguration.getDatabaseUrlConfigurationAnnotation(testClassMethod); if (databaseUrl == null) { url = testClassResource.getUrl(); } else { - url = ObserveTestConfiguration.getUrl(databaseUrl.value()); + url = ObserveTestConfiguration.getTestPropertyAsUrl(databaseUrl.value()); + } + + DatabaseServerNameConfiguration databaseServerNameConfiguration = ObserveTestConfiguration.getDatabaseServerNameConfigurationAnnotation(testClassMethod); + if (databaseServerNameConfiguration == null) { + serverDbName = testClassResource.getServerDbName(); + } else { + serverDbName = ObserveTestConfiguration.getTestPropertyAsString(databaseServerNameConfiguration.value()); } } diff --git a/test/src/main/java/fr/ird/observe/test/spi/DatabaseServerNameConfiguration.java b/test/src/main/java/fr/ird/observe/test/spi/DatabaseServerNameConfiguration.java new file mode 100644 index 0000000..400def7 --- /dev/null +++ b/test/src/main/java/fr/ird/observe/test/spi/DatabaseServerNameConfiguration.java @@ -0,0 +1,45 @@ +package fr.ird.observe.test.spi; + +/*- + * #%L + * ObServe :: Test + * %% + * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.test.ObserveTestConfiguration; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * To configure server database name of a data source. + * + * Created on 30/08/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.0 + */ +@Target(value = {ElementType.TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface DatabaseServerNameConfiguration { + + String value() default ObserveTestConfiguration.WEB_DATABASE; +} diff --git a/test/src/main/resources/observetest.properties b/test/src/main/resources/observetest.properties index 05e0b4b..911b10d 100644 --- a/test/src/main/resources/observetest.properties +++ b/test/src/main/resources/observetest.properties @@ -30,6 +30,7 @@ observetest.h2.password=sa observetest.web.url=http://localhost:8080/observeweb/api/v1 observetest.web.login=admin observetest.web.password=a +observetest.web.database=6 observetest.obstuna.url=jdbc:postgresql://localhost:5432/obstuna observetest.obstuna.login=admin observetest.obstuna.login.technicien=technicien -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm