spi4j / pacman

Pacman : Générateur de code pour applications JavaEE s'appuyant sur le Framework Spi4J (Https://github.com/spi4j/spi4j)
Other
4 stars 1 forks source link

Import Swagger : Manque l'import "java.util.Base64" sur la classe de configuration des jetons. #15

Open pg1971 opened 8 months ago

pg1971 commented 8 months ago

Suite à une demande de génération "Import Swagger", la séquence de touche automatiquement lancée (CTRL + SHIFT + O) pour la réorganisation des imports tombe en erreur car elle ne peut effectuer l'import pour la clase Base64 (plusieurs imports sont possibles).

pg1971 commented 8 months ago

En demandant la désactivation de la séquence de touches (grâce à la propriété "pacman.import.format = false" dans le fichier de configuration : project.properties) on peut voir qu'effectivement la ligne d'import n'a pas été écrite.

Or cette ligne est expressément demandée en écriture au niveau d'Acceleo ! De plus cette problématique n'est présente que lors de la primo génération. Si on efface la classe [Nom de l'application]TokensConfiguration.java et qu'on relance la demande de génération, la problématique n'est plus présente...

Pas de solution dans l'immédiat.

pg1971 commented 8 months ago

La problématique est tout simplement la suivante : uniquement lors de la primo-génération, l'appel au service Java de gestion des imports n'est pas effectué et aucun import n'est écrit au niveau de la classe. Suite à l'organisation automatique des imports, toutes les autres lignes d'import sont alors écrites par Eclipse sauf celle concernant la classe "Base64" puisque plusieurs imports sont possibles et nécessitent une intervention humaine.

La désactivation du cache sur ce générateur n'a pas influé sur le résultat.

pg1971 commented 7 months ago

Aussi étonnant que cela paraisse, il s'agit finalement d'une problématique liée à l'utilisation des balises 'user code'. Lors de la primo-génération acceleo ne rentre tout simplement pas dans le template de gestion des imports (uniquement pour cette classe alors que ce type de code est utilisé dans tout Pacman....). Donc le problème est en amont, directement au niveau du template qui est censé appeler le service Java.... Le problème est d'autant plus étonnant que justement, lors de la primo-génération, ces balises n'existent pas puisque aucun fichier n'est écrit....

pg1971 commented 7 months ago

Corrigé. Suite à une coquille, la classe était générée deux fois... dont la première fois déjà avec des balises 'user code' au niveau des imports..