From 8dc57fec00a23816a0a9bc7103332d0b973cda3a Mon Sep 17 00:00:00 2001 From: dmeidlin <14339308+dmeidlin@users.noreply.github.com> Date: Tue, 13 Aug 2024 18:09:42 -0400 Subject: [PATCH] build gson with geogson type adapter --- .../experiment/ExperimentUtilities.java | 32 ++++++------------- .../factory/data/OverwrittenData.java | 4 ++- .../process/ImportTableProcess.java | 10 +++--- .../model/delta/DeltaEntity.java | 4 ++- 4 files changed, 22 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/ExperimentUtilities.java b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/ExperimentUtilities.java index d37438b51..f8a291372 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/ExperimentUtilities.java +++ b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/ExperimentUtilities.java @@ -17,37 +17,20 @@ package org.breedinginsight.brapps.importer.services.processors.experiment; +import com.github.filosganga.geogson.gson.GeometryAdapterFactory; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; import io.micronaut.http.HttpStatus; import io.micronaut.http.exceptions.HttpStatusException; import io.reactivex.functions.Function; -import org.apache.commons.collections4.map.CaseInsensitiveMap; -import org.brapi.v2.model.BrAPIExternalReference; -import org.brapi.v2.model.core.BrAPIStudy; -import org.breedinginsight.brapi.v2.constants.BrAPIAdditionalInfoFields; -import org.breedinginsight.brapps.importer.model.imports.BrAPIImport; -import org.breedinginsight.brapps.importer.model.imports.experimentObservation.ExperimentObservation; -import org.breedinginsight.brapps.importer.model.response.ImportObjectState; -import org.breedinginsight.brapps.importer.model.response.PendingImportObject; -import org.breedinginsight.brapps.importer.services.ExternalReferenceSource; -import org.breedinginsight.brapps.importer.services.processors.experiment.appendoverwrite.model.AppendOverwriteMiddlewareContext; -import org.breedinginsight.brapps.importer.services.processors.experiment.model.ExpImportProcessConstants; -import org.breedinginsight.model.Program; -import org.breedinginsight.services.exceptions.UnprocessableEntityException; - -import javax.inject.Singleton; -import java.util.*; -import java.util.stream.Collectors; - -import com.google.gson.JsonObject; -import io.micronaut.http.HttpStatus; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.collections4.map.CaseInsensitiveMap; import org.apache.commons.lang3.StringUtils; +import org.brapi.v2.model.BrAPIExternalReference; import org.brapi.v2.model.core.BrAPIStudy; -import org.brapi.v2.model.germ.BrAPIGermplasm; import org.brapi.v2.model.pheno.BrAPIObservation; import org.brapi.v2.model.pheno.BrAPIScaleValidValuesCategories; import org.breedinginsight.api.model.v1.response.ValidationError; @@ -55,14 +38,19 @@ import org.breedinginsight.brapi.v2.constants.BrAPIAdditionalInfoFields; import org.breedinginsight.brapps.importer.model.imports.BrAPIImport; import org.breedinginsight.brapps.importer.model.imports.experimentObservation.ExperimentObservation; +import org.breedinginsight.brapps.importer.model.response.ImportObjectState; import org.breedinginsight.brapps.importer.model.response.PendingImportObject; +import org.breedinginsight.brapps.importer.services.ExternalReferenceSource; +import org.breedinginsight.brapps.importer.services.processors.experiment.appendoverwrite.model.AppendOverwriteMiddlewareContext; import org.breedinginsight.brapps.importer.services.processors.experiment.create.model.PendingData; import org.breedinginsight.brapps.importer.services.processors.experiment.create.model.ProcessedPhenotypeData; +import org.breedinginsight.brapps.importer.services.processors.experiment.model.ExpImportProcessConstants; import org.breedinginsight.model.Program; import org.breedinginsight.model.Scale; import org.breedinginsight.model.Trait; import tech.tablesaw.columns.Column; +import javax.inject.Singleton; import java.math.BigDecimal; import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; @@ -88,7 +76,7 @@ public class ExperimentUtilities { Gson gson; public ExperimentUtilities() { - this.gson = new Gson(); + this.gson = new GsonBuilder().registerTypeAdapterFactory(new GeometryAdapterFactory()).create(); } /** diff --git a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/factory/data/OverwrittenData.java b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/factory/data/OverwrittenData.java index 51f839494..35fceddb3 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/factory/data/OverwrittenData.java +++ b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/factory/data/OverwrittenData.java @@ -17,7 +17,9 @@ package org.breedinginsight.brapps.importer.services.processors.experiment.appendoverwrite.factory.data; +import com.github.filosganga.geogson.gson.GeometryAdapterFactory; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import io.micronaut.context.annotation.Prototype; @@ -91,7 +93,7 @@ public OverwrittenData(boolean canOverwrite, this.program = program; this.fieldValidator = fieldValidator; this.observationService = observationService; - this.gson = new Gson(); + this.gson = new GsonBuilder().registerTypeAdapterFactory(new GeometryAdapterFactory()).create(); } @Override diff --git a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/middleware/process/ImportTableProcess.java b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/middleware/process/ImportTableProcess.java index 8b7614dce..b8f91fae4 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/middleware/process/ImportTableProcess.java +++ b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/middleware/process/ImportTableProcess.java @@ -17,7 +17,9 @@ package org.breedinginsight.brapps.importer.services.processors.experiment.appendoverwrite.middleware.process; +import com.github.filosganga.geogson.gson.GeometryAdapterFactory; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import io.micronaut.context.annotation.Property; import io.micronaut.context.annotation.Prototype; import lombok.extern.slf4j.Slf4j; @@ -44,11 +46,11 @@ import org.breedinginsight.brapps.importer.services.processors.experiment.appendoverwrite.factory.data.VisitedObservationData; import org.breedinginsight.brapps.importer.services.processors.experiment.appendoverwrite.model.AppendOverwriteMiddleware; import org.breedinginsight.brapps.importer.services.processors.experiment.appendoverwrite.model.AppendOverwriteMiddlewareContext; -import org.breedinginsight.brapps.importer.services.processors.experiment.validator.field.FieldValidator; import org.breedinginsight.brapps.importer.services.processors.experiment.appendoverwrite.model.MiddlewareException; import org.breedinginsight.brapps.importer.services.processors.experiment.service.ObservationService; import org.breedinginsight.brapps.importer.services.processors.experiment.service.ObservationVariableService; import org.breedinginsight.brapps.importer.services.processors.experiment.service.StudyService; +import org.breedinginsight.brapps.importer.services.processors.experiment.validator.field.FieldValidator; import org.breedinginsight.dao.db.tables.pojos.TraitEntity; import org.breedinginsight.model.Program; import org.breedinginsight.model.Trait; @@ -60,12 +62,12 @@ import tech.tablesaw.columns.Column; import javax.inject.Inject; -import java.time.OffsetDateTime; import java.util.*; import java.util.stream.Collectors; -import static org.breedinginsight.brapps.importer.services.processors.experiment.model.ExpImportProcessConstants.*; import static org.breedinginsight.brapps.importer.services.processors.experiment.model.ExpImportProcessConstants.ErrMessage.MULTIPLE_EXP_TITLES; +import static org.breedinginsight.brapps.importer.services.processors.experiment.model.ExpImportProcessConstants.TIMESTAMP_PREFIX; +import static org.breedinginsight.brapps.importer.services.processors.experiment.model.ExpImportProcessConstants.TIMESTAMP_REGEX; @Slf4j @Prototype @@ -96,7 +98,7 @@ public ImportTableProcess(StudyService studyService, this.brAPIObservationDAO = brAPIObservationDAO; this.observationService = observationService; this.experimentUtil = experimentUtil; - this.gson = new Gson(); + this.gson = new GsonBuilder().registerTypeAdapterFactory(new GeometryAdapterFactory()).create(); this.fieldValidator = fieldValidator; this.statistic = statistic; this.processedDataFactory = processedDataFactory; diff --git a/src/main/java/org/breedinginsight/model/delta/DeltaEntity.java b/src/main/java/org/breedinginsight/model/delta/DeltaEntity.java index e6b0f5797..11646f9f8 100644 --- a/src/main/java/org/breedinginsight/model/delta/DeltaEntity.java +++ b/src/main/java/org/breedinginsight/model/delta/DeltaEntity.java @@ -1,6 +1,8 @@ package org.breedinginsight.model.delta; +import com.github.filosganga.geogson.gson.GeometryAdapterFactory; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import lombok.NonNull; public abstract class DeltaEntity { @@ -13,7 +15,7 @@ public abstract class DeltaEntity { // Note: do not use @Inject, DeltaEntity are always constructed by DeltaEntityFactory. protected DeltaEntity(@NonNull T entity) { this.entity = entity; - this.gson = new Gson(); + this.gson = new GsonBuilder().registerTypeAdapterFactory(new GeometryAdapterFactory()).create(); } protected T getEntity() {