Je propose de revoir la prise en charge de ce cadre.
Il ne semble pas être normalement pris en charge. Aucune version de correctif depuis 2014 et nombre croissant de problèmes dans StringTemplate lui-même et problèmes et confusion autour de son intégration avec JDBI. Par exemple, des problèmes avec le chargement de fichiers de modèle dans des environnements multithread ou env avec un chargement de classe non trivial. Aucune réponse sur les problèmes, même pas de réponse sur la question de l'activité du projet depuis novembre 2017.
Le minimum, je pense, est de mettre un avis dans Docs.
Merci
Commençons par un avis dans la documentation indiquant que le projet StringTemplate est inactif.
Je vais laisser les autres membres du projet se prononcer sur la question de la dépréciation de l'intégration ST de Jdbi. Personnellement, je pense que nous devrions continuer à le soutenir pendant au moins un petit moment. Nous venons tout juste de commencer à prendre en charge ST4.
Je pense que nous avons besoin d'une alternative. Ne pas avoir de moyen de créer des modèles complexes pour SQL est interdit. J'ai besoin de pouvoir partager des bits et des parties SQL entre différents modèles et de pouvoir factoriser des éléments communs dans les méthodes de modèle. Pour moi, supprimer stringtemplate me fait chercher un autre framework alternatif. Sinon, je serais obligé de créer des fichiers SQL avec beaucoup de duplication.
Ajoutons un NOTICE
maintenant. Nous pouvons le déprécier une fois que nous aurons un remplaçant viable.
Quelqu'un a-t-il des moteurs de modélisation préférés qui s'intégreraient bien dans jdbi? J'ai utilisé un peu mustache
et c'était bien, mais je suis loin d'être un expert...
Merci @jarlah , c'était un peu ce à quoi je m'attendais.
C'est dommage que StringTemplate soit négligé en amont, mais tant que les gens l'utilisent et que cela fonctionne, il n'y a aucune raison pour nous de retirer le support.
Nous avons été assez satisfaits de FreeMarker où je travaille. La moustache est également une bonne option.
D'accord avec @jarlah - une alternative est nécessaire. J'utilise également activement des modèles et la duplication sera massive sans ST. L'alternative doit être simple et expressive - ce que j'aime dans le ST actuel. J'ai utilisé Freemarker il y a longtemps et si je m'en souviens bien, cela n'a pas l'air simple pour les modèles SQL.
BTW Voici mon dernier problème avec ST, dois-je le poster ici avec un code de contournement au niveau d'intégration jdbi?
S'il existe une solution de contournement simple que jdbi
peut faire sans trop compliquer les choses, nous l'envisagerions certainement.
Comment des templateEngines supplémentaires seraient-ils regroupés dans jdbi ? Ils apportent tous des dépendances externes que nous ne voulons pas dans IIRC stringtemplate a son propre module mvn, alors peut-être devrions-nous continuer à le faire? Cela semble de toute façon moins compliqué pour les utilisateurs que les dépendances facultatives. Je serais intéressé par la contribution d'un moteur StringSubstitutor (si ce n'est pas déjà fait), et Moustache semble assez amusant à faire aussi.core
, et ni créer un module à 1 classe ni définir un \
S'il s'agit d'une classe unique autonome avec une seule dépendance <optional>
, ou tout aussi légère, elle peut aller dans le noyau. Sinon, faisons tourner un module. Ma préférence était censée être une ligne directrice, pas une barre impossible à franchir :)
Cela romprait avec le modèle défini par le module stringtemplate4. Et je sais qu'en tant qu'utilisateur, je déteste un peu plus que d'avoir à jouer avec maven, en particulier les dépendances de mes dépendances...
Je vois que stringtemplate a un @UseStringTemplateEngine
malgré l'existence de @UseTemplateEngine
. Est-ce une chose de commodité souhaitable pour chaque moteur de modèle ou est-ce que nous préférons nous en tenir à l'annotation générique uniquement à partir de maintenant, sauf si nécessaire?
Personnellement, je préférerais qu'ils soient divisés en modules, de sorte que vous ne puissiez même pas voir une classe dans votre IDE sans ses dépendances incluses de manière transitive dans le chemin de classe. NoClassDefFoundError
peut être une vraie douleur.
J'ai beaucoup travaillé avec freemarker dans le passé. Cela pourrait être une entreprise amusante de mettre en œuvre un soutien pour cela. Il n'est pas directement destiné à cela. Mais c'est possible. Il faut bien regarder les performances.
Je pourrais en faire un pic si rien d'autre
travaille actuellement dessus. Je ne vais pas ouvrir de pull request avant d'avoir une preuve de concept fonctionnelle raisonnable. Il y a un problème avec l'utilisation de la configuration, car le chargement du modèle n'est pas statique, il doit être dynamique. Ainsi, chaque modèle doit être chargé et mis en cache manuellement. J'ai cloné le module stringtemplate4 et renommé les classes, etc. Si quelqu'un est intéressé, je travaille sur la branche master de mon fork de jdbi.
Je pense que la situation qui a conduit à ce problème est une combinaison des éléments suivants :
Si un StringTemplate 5 était créé, je m'attendrais à ce que la concurrence sûre (et probablement l'immuabilité) joue un rôle important dans la conception de base.
Commentaire le plus utile
Personnellement, je préférerais qu'ils soient divisés en modules, de sorte que vous ne puissiez même pas voir une classe dans votre IDE sans ses dépendances incluses de manière transitive dans le chemin de classe.
NoClassDefFoundError
peut être une vraie douleur.