Frage

Ich brauche eine Revisionssystem für Artikel in meinem Grails Web-App zu implementieren. Nach der Suche Internet grails Forum, Stackoverflow, Grails Plugins und googeln, Ich habe mit drei Optionen endete:

Option 1 - Mit dem Grails Envers Plugin (siehe http://code.google.com/p/grails-envers-plugin/ ). Hat jemand erfolgreich eingesetzt? Oder mit Envers ohne das Plugin (siehe hier ), aber wie kann ich es Arbeit machen mit GORM?

Option 2 - Mit dem Gvers Plugin Ich habe hier schon herausgefunden: https://github.com/ziftytodd/gvers . Ich habe nie jemand gehört es zu benutzen, so ist es jemanden, der es jemals erfolgreich eingesetzt haben?

Option 3 - Einbau-Mechanismus . Weceem hat ein Versionierungssystem für Inhalte des Weceem CMS erstellt. Ich kann meine Inspiration aus der Logik des Codes und das Design dieser großen Anwendung zeichnen, aber es scheint, wie viel des Guten, und ich weiß nicht wirklich wie mit Nicht-Standard-Lösungen.

Also meine Frage, was raten Sie mir zu tun? Haben Sie jemals eine dieser Optionen verwendet?

Vielen Dank für Ihre Einsichten.

War es hilfreich?

Lösung

Da ich keine Antworten in den Tagen nach meiner Frage erhalten haben, haben wir begonnen, alle Optionen zu untersuchen und kam zu folgenden Ergebnissen / Schlussfolgerungen:

  1. Envers Plugin : Während Envers ist ein gut etablierter Weg zum Griff Objektrevisionen und Wirtschaftsprüfung mit Hibernate (Wie von Vadeg), gibt es keine solche out-of-the Standardlösung für Grails. Envers Plugin ist stricly nutzlos und ein totes-nie geborenes Projekt. Daher ist Envers mit GORM mit noch nicht möglich, direkt, aber ich glaube, dass es ein Platz für einen Envers Plugin (vielleicht Teil grail 2.0?), Da Envers jetzt integraler Bestandteil der Hibernate Core-Module ist. Aber wir hatten keine Zeit, eine solche Lösung zu implementieren (was bei weitem die beste ist, wenn Sie genügend Zeit und Ressourcen vor Ihnen haben) ... so dass wir es gelöscht wird.

  2. Gvers Plugin : Überraschenderweise dieses Plugin ist wie ein Zauber funktioniert, auch wenn es scheint, dass niemand es in GRAILS Welt verwendet (auch den Plugin Schöpfer, der eine ungültige E-Mail hat! ). Scheint riskant, mit ihm zu gehen, aber wenn Ihre Anforderungen niedrig sind (wie ein Grundversionierungssystem), sollten Sie mit ihm gehen ..

  3. Einbausystem : außer wenn Sie mit sehr spezifischen Anforderungen ein CMS-System bauen oder am Gegenteil etwas sehr einfach, ich würde es in allen anderen Fällen nicht. Weceem ist sehr gut-mit vielen Beispielen für CMS Content-Versionen implementiert, sondern auch für das, es ist schade, dass sie verwenden Envers nicht statt. Keine Notwendigkeit, das Rad neu zu erfinden ... besser Ferrari zu verbessern bestehende, nicht wahr?

  4. VCS-System : Ein Freund hat mich vorgeschlagen, bestehende Lösungen zu verwenden, die speziell für diese Art von Aufgaben gebaut: Versionskontrollsystem natürlich !! Eigentlich GIT scheint der perfekte Kandidat zu sein: schnell, zuverlässig, alomst freien Repositorys zu Ihrer Verfügung. Eigentlich ist die perfekte Lösung. Mein einziges Problem. Na ja, ich weiß nicht, wie Git zu verwenden (und noch weniger seine API) und wieder ich habe keine Zeit

Bottom Line

Ich werde sicherlich mit Gvers , aber wenn Sie sind vertraut mit Git oder wenn Sie sich wohl fühlen mit GORM und Hibernate , gehen Sie für ein Gra-Plugin Gebäude (entweder basierend auf Git oder Envers )

Andere Tipps

habe ich Envers in Projekt mit Hibernate verwendet und es funktioniert gut. GORM basiert auf dem Ruhezustand, so dass ich denke, es gibt kein Problem mit ihm.

Zunächst einmal müssen Sie entscheiden, welche Art von Versionierung Sie brauchen? Sie benötigen Objektgraph Änderungen rückgängig zu machen, oder Sie müssen nach einigen Feldern suchen? Manchmal ist es besser, einige kleine lokale Implementierung anstatt Injektion riesige Bibliothek zu machen.

Wenn Sie Revision Graph von Objekten benötigen, Envers ist eine gute Wahl. Wenn Sie Revision eines Feldes zu machen, DIY:)

Lucas Ward Plugin funktioniert. Bestätigt mit Grails 1.3.7 Das Wichtigste ist, Entity-Updates sind innerhalb der Transaktion, um sicherzustellen, wie envers davon abhängt. Zur Erinnerung Grails-Controller standardmäßig nicht transaktionale sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top