From 6b7dd42cf2f3a745b541cae4ed0d70b3c24ad393 Mon Sep 17 00:00:00 2001 From: Mathieu Lavigne Date: Fri, 1 Dec 2017 11:38:35 +0100 Subject: [PATCH] Add CSV mapper for REST server FIX #606 Remove sample ThreadLocals --- .../general/common/api/ThreadLocals.java | 41 ------------------- .../service/impl/rest/CsvProvider.java | 5 +-- 2 files changed, 2 insertions(+), 44 deletions(-) delete mode 100644 samples/core/src/main/java/io/oasp/gastronomy/restaurant/general/common/api/ThreadLocals.java diff --git a/samples/core/src/main/java/io/oasp/gastronomy/restaurant/general/common/api/ThreadLocals.java b/samples/core/src/main/java/io/oasp/gastronomy/restaurant/general/common/api/ThreadLocals.java deleted file mode 100644 index 2d7612225..000000000 --- a/samples/core/src/main/java/io/oasp/gastronomy/restaurant/general/common/api/ThreadLocals.java +++ /dev/null @@ -1,41 +0,0 @@ -package io.oasp.gastronomy.restaurant.general.common.api; - -import java.text.DateFormat; -import java.util.List; - -import io.oasp.gastronomy.restaurant.general.service.impl.rest.CsvProvider; - -/** - * Variables pouvant être positionnées par n'importe quelle classe. La valeur stockée sera disponible uniquement pour le - * thread courant. Ce mécanisme permet notamment de transmettre des id de la couche service à la couche data_access. - * - * @author mlavigne - */ -public final class ThreadLocals { - - /** - * Nom des colonnes qu'on souhaite retrouver en retour de l'API (dans le cas d'un retour CSV par exemple). Exemple - * HTTP : - * - *
-   * Columns: nomDsp,codeCommuneNra,typePf
-   * 
- * - * @see CsvProvider - */ - public static final ThreadLocal> ACCEPT_COLUMNS = new ThreadLocal<>(); - - /** - * @see CsvProvider - */ - public static final ThreadLocal ACCEPT_CHARSET = new ThreadLocal<>(); - - /** - * @see CsvProvider - */ - public static final ThreadLocal DATE_FORMAT = new ThreadLocal<>(); - - private ThreadLocals() { - } - -} diff --git a/samples/core/src/main/java/io/oasp/gastronomy/restaurant/general/service/impl/rest/CsvProvider.java b/samples/core/src/main/java/io/oasp/gastronomy/restaurant/general/service/impl/rest/CsvProvider.java index 9774b72b9..7c6bad302 100644 --- a/samples/core/src/main/java/io/oasp/gastronomy/restaurant/general/service/impl/rest/CsvProvider.java +++ b/samples/core/src/main/java/io/oasp/gastronomy/restaurant/general/service/impl/rest/CsvProvider.java @@ -34,7 +34,6 @@ import com.fasterxml.jackson.annotation.JsonProperty; -import io.oasp.gastronomy.restaurant.general.common.api.ThreadLocals; import io.oasp.gastronomy.restaurant.general.common.api.exception.IllegalHeaderValueException; import io.oasp.module.basic.csv.CsvFormat; import io.oasp.module.jpa.common.api.to.PaginatedListTo; @@ -42,7 +41,7 @@ /** * Cette classe est responsable de la conversion entre Eto et ligne CSV. Elle est implicite dans la couche service. Pour * obtenir un retour CSV de l'API le client doit fournir le header HTTP - * {@link ThreadLocals#ACCEPT_COLUMNS Accept-Header}. Pour envoyer du CSV le client doit fournir le header + * Accept-Header. Pour envoyer du CSV le client doit fournir le header * Content-Header indiquant le nom des colonnes (le nom des attributs de l'ETO ou des colonnes CSV * si les getters de l'ETO sont annotés par {@link JsonProperty @JsonProperty}) envoyées dans le body séparé par "," ou * ";". @@ -121,7 +120,7 @@ * *

* Ce qui permet d'empêcher Jackson de serialiser tous les champs même ceux qui ne sont pas demandés par le client dans - * son header {@link ThreadLocals#ACCEPT_COLUMNS} + * son header Accept-Columns *

* * @author mlavigne