ofbiz-framework issueshttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues2020-02-21T13:53:39Zhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/8Add some J/Gunit test for impersonation permission controls2020-02-21T13:53:39ZGil PortenseigneAdd some J/Gunit test for impersonation permission controlsGil PortenseigneGil Portenseignehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/7Add some j/gunit test for EntityUtil refacto2018-10-16T08:04:19ZGil PortenseigneAdd some j/gunit test for EntityUtil refactoAdd some j/gunit test for EntityUtil refacto : refactoEntityUtilAdd some j/gunit test for EntityUtil refacto : refactoEntityUtilGil PortenseigneGil Portenseignehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/5Renvoie de vues à partir d'URI composés2019-03-29T15:38:19ZMathieu LirzinRenvoie de vues à partir d'URI composésDans l'idée d'améliorer le support d'[API de type REST](https://issues.apache.org/jira/browse/OFBIZ-4274), on veut gérer les routes HTTP dont le *path* est composé de plusieurs segments. On veut pouvoir définir des `request-map` comme d...Dans l'idée d'améliorer le support d'[API de type REST](https://issues.apache.org/jira/browse/OFBIZ-4274), on veut gérer les routes HTTP dont le *path* est composé de plusieurs segments. On veut pouvoir définir des `request-map` comme dans l'exemple suivant :
```xml
<request-map uri="foo">…</request-map>
<request-map uri="foo/bar">…</request-map>
<request-map uri="foo/bar/baz">…</request-map>
```
Le problème de cette fonctionnalité est qu'il existe déjà une sémantique associée au *path* à segments multiples. Voici les usages actuels de cette fonctionnalité:
* Le mécanisme de **vue dynamique passée dans l'URI** est une fonctionnalité permettant de dynamiquement redéfinir la vue qui doit être affichée après avoir exécuter le gestionnaire de requête associé à une URI particulière. Ainsi le *path* `/earth/moon` sera associé avec la `request-map` avec l'attribut `uri="earth"` et la vue dont le nom est "moon" sera rendue.
* Les **paramètres de requête dans le *path*** est une fonctionnalité permettant de passer des paramètres de requête en utilisant une syntaxe alternative. De base une URI est définit au moyen de la syntaxe `/earth/moon?foo=1&bar=2` quit définit un *path* `/earth/moon` et deux paramètres `foo` et `bar` qui sont respectivement associés aux valeurs 1 et 2. Avec la syntaxe alternative la même URI peut être écrite `/earth/moon/~foo=1/~bar=2` mais aura la même interprétation au niveau d'OFBiz.
Il faut donc adapter et/ou supprimer ces fonctionnalités pour pouvoir définir des `request-map` à segments multiples. Dans le cas des vues dynamiques en utilisant les [templates d'URI](https://tools.ietf.org/html/rfc6570) on pourrait définir des routes:
```xml
<request-map uri="earth">
<response name="success" type="view" value="mars"/>
</request-map>
<request-map uri="earth/{viewName}">
<response name="success" type="view" from-variable="viewName"/>
</request-map>
```
pour la syntaxe alternative de paramètre on peut simplement supprimer tous les usages de cette syntaxe et en les remplaçant par la syntaxe canonique.Artemiy RozovykArtemiy Rozovykhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/4Reusinage de ‘RequestHandler::doRequest’2018-07-13T10:21:07ZMathieu LirzinReusinage de ‘RequestHandler::doRequest’La méthode `RequestHandler::doRequest` est excessivement longue, non testé, et a de multiple responsabilités:
- Association de la `request-map` au handler
- Benchmarking
- Suivi des utilisateur
- Gestion de HTTPS
- Gestion des redirectio...La méthode `RequestHandler::doRequest` est excessivement longue, non testé, et a de multiple responsabilités:
- Association de la `request-map` au handler
- Benchmarking
- Suivi des utilisateur
- Gestion de HTTPS
- Gestion des redirection vers d'autres routes
Ce qui la rend particulièrement difficile à lire est que c'est un gruyère de tests à null et de traitements d'erreurs, avec des variables mutées déclarées 200 lignes plus haut.
Il faudrait réusiner cette méthode en améliorant le traitement d'erreur et en déléguant les responsabilités à d'autres méthodes.
- [ ] Tester unitairement cette méthode
- [ ] Extraire le suivi des utilisateurs
- [ ] Extraire la mesure de temps
- [X] Extraire la résolution de la `request-map` ([OFBIZ-10438](https://issues.apache.org/jira/browse/OFBIZ-10438))
- [X] Extraire la vérification des certificats SSL ([OFBIZ-10450](https://issues.apache.org/jira/browse/OFBIZ-10450))
- [ ] Utiliser [`Optional`](https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html) quand cela est possible.