Question

Je dois mettre en œuvre un système de révision des articles dans mon Grails application web. Après avoir cherché forum Grails, stackoverflow, plugins Grails et googler Internet, j'ai fini avec 3 options:

1 - Utilisation de la Grails plug-in Envers (voir http://code.google.com/p/grails-envers-plugin/ ). Quelqu'un at-il utilisé avec succès? Ou en utilisant sans Envers plug-in (voir ici ), mais comment puis-je faire fonctionner avec Gorm?

2 - Utilisation du plug-in Gvers J'ai trouvé ici: https://github.com/ziftytodd/gvers . Je ne ai jamais entendu quelqu'un l'utiliser, donc est ce qu'il ya quelqu'un qui ont déjà utilisé avec succès?

Option 3 - Construit mécanisme -in . Weceem a créé un système de versioning pour tout contenu du Weceem CMS. Je puise mon inspiration de la logique du code et la conception de cette grande application, mais il semble exagéré et je ne aime pas vraiment l'aide de solutions non standard.

Alors, ma question, qu'est-ce que vous me conseillez de faire? Avez-vous déjà utilisé l'une de ces options?

Merci beaucoup pour vos idées.

Était-ce utile?

La solution

Depuis que je ne l'ai pas eu de réponse pendant les jours qui ont suivi ma question, nous avons commencé à étudier toutes les options et est parvenu aux résultats / conclusions suivantes:

  1. plug-in Envers : tout Envers est une révision moyen de l'objet de la poignée bien établie et l'audit avec Hibernate (comme en pointe par Vadeg), il n'y a pas hors-the solution de conservation pour grails. Envers plugin est inutile et un stricly projet mort-né jamais. Par conséquent, l'utilisation avec Gorm est Envers toujours pas possible directement, mais je crois qu'il ya un espace pour un plug-in Envers (peut-être une partie de graal 2.0?) Depuis fait maintenant partie Envers partie intégrante des modules de base Hibernate. Cependant, on n'a pas eu le temps de mettre en œuvre une telle solution (qui est de loin le meilleur quand vous avez assez de temps et de ressources devant vous) ... donc nous a laissé tomber.

  2. plug-in Gvers : Étonnamment ce plugin fonctionne comme un charme, même s'il semble que personne ne l'utilise dans le monde GRAILS (même le créateur de plug-in qui a un e-mail valide! ). Il semble risqué d'aller avec elle, mais si vos besoins sont faibles (comme un système de versionnage de base), vous devriez aller avec elle ..

  3. Système intégré : sauf si vous construisez un système CMS ayant des besoins très spécifiques ou au contraire quelque chose de très simple, je ne pas aller dans tous les autres cas. Weceem est très bien mis en œuvre avec beaucoup d'exemples pour les révisions de contenu CMS, mais même pour cela, il est dommage qu'ils n'utilisent pas la place Envers. Pas besoin de réinventer la roue ... mieux pour améliorer existante Ferrari, non?

  4. Système VCS : un ami m'a suggéré d'utiliser des solutions existantes qui sont construits spécialement pour ce genre de tâches: contrôle Version système bien sûr !! En fait, GIT semble être le candidat idéal: rapide, fiable, sans dépôts croirait presque disponible à votre disposition. En fait, c'est la solution parfaite. Mon seul problème. Je ne sais pas comment utiliser Git (et encore moins son API) et encore je n'ai pas le temps

Bottom Line

Je vais certainement utiliser Gvers mais si vous êtes familier avec Git ou si vous vous sentez à l'aise avec Gorm et Mise en veille prolongée , optez pour la construction d'un plugin graal (soit basé sur Git ou Envers )

Autres conseils

Je l'ai utilisé dans le projet avec Envers Hibernate et il fonctionne très bien. Gorm est basée sur la mise en veille prolongée, donc je pense qu'il n'y a pas de problème avec elle.

Tout d'abord, vous devez décider quel type de vous versioning besoin? Avez-vous besoin de rollback graphique change d'objet ou que vous devez occuper certains champs? Parfois, il est préférable de faire une petite mise en œuvre locale plutôt que d'injecter bibliothèque énorme.

Si vous avez besoin de révision graphique des objets, est un bon Envers choix. Si vous avez besoin de faire la révision d'un champ, bricolage:)

plug-ins de Lucas Ward . oeuvres Confirmé avec Grails 1.3.7 L'important est d'assurer les mises à jour des entités sont à la transaction comme en dépend Envers. Juste pour rappeler aux contrôleurs Grails ne sont pas des transactions par défaut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top