Migrieren einer Grails-Anwendung zu Scala Play / Spray


12

Wir haben eine mittelgroße Grails-Webanwendung mit GORM / Hibernate über PostgreSQL und GSPs, die HTML liefern, sowie einige REST-APIs. Wir standardisieren uns für Scala und möchten diese Anwendung mit Slick auf Play oder Spray migrieren, um auf die vorhandene Datenbank zuzugreifen.

Nimble wird derzeit für Authentifizierung / Autorisierung und Benutzer / Rolle / etc. Verwendet. Verwaltung.

Welche Ansätze können wir verfolgen, um die Migration Schritt für Schritt durchzuführen und eine Big-Bang-Migration zu vermeiden?

Sie sind beide JVM-Sprachen. Gibt es eine Möglichkeit, zu vermeiden, dass sie als separate Webanwendungen behandelt werden, die auf getrennten Ports zu marktüblichen Bedingungen ausgeführt werden?


Spaß mit Projektnamen, aber ein vernünftiger Ansatz könnte darin bestehen, einen Anwendungs-Proxy zu verwenden, um einen einzelnen Namespace bereitzustellen. Eine andere Möglichkeit besteht darin, sie als separate WAR-Dateien in einem Webcontainer wie Tomcat auszuführen. Ich habe Grails oder Scala nicht gemacht, aber wenn die Web-APIs ein Wrapper um Java-Servlets sind, dann sind Sie goldrichtig. Wenn nicht, müssen Sie den App-Proxy verwenden, um die separaten Ports usw. zu verbergen.
Berin Loritsch

Antworten:


1

Persönlich klingt ein Umschreiben für mich effizienter, aber wenn Sie es schrittweise tun müssen, würde ich vorschlagen, dass Sie den folgenden Ansatz wählen:

  • Verschieben Sie Ihren vorhandenen Datenbankcode, um Slick zu verwenden (wahrscheinlich benötigen Sie Wrapper, um Ihren vorhandenen Code vor zu vielen Änderungen zu schützen).
  • Integrieren Sie anschließend Play in Ihre Laufzeitumgebung und verwenden Sie Silhouette für die Authentifizierung und Autorisierung mit Play Actions.
  • Sie sollten dann in der Lage sein, einzelne GSPs nacheinander zu Play / Twirl zu verschieben.

Leider kenne ich keine Möglichkeit, sie dazu zu bringen, denselben Port abzuhören, sodass Sie von Grails zum Play-Port umleiten müssten, um eine nahtlose Wiedergabe zu gewährleisten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.