Migracja aplikacji Grails do Scala Play / Spray


12

Mamy aplikację internetową Grails średniej wielkości używającą GORM / Hibernate nad PostgreSQL i GSP obsługującymi HTML, a także kilka interfejsów API REST. Standaryzujemy się na Scali i chcielibyśmy migrować tę aplikację do Play lub Spray, a Slick uzyska dostęp do istniejącej bazy danych.

Nimble jest obecnie używany do uwierzytelniania / autoryzacji i użytkownika / roli / itp. zarządzanie.

Jakie podejścia możemy zastosować, aby przeprowadzić migrację krok po kroku, unikając migracji z Wielkiego Wybuchu?

Oba są językami JVM, czy istnieje sposób, aby uniknąć traktowania ich jako osobnych aplikacji internetowych działających na osobnych portach na długość ramion?


Zabawa z nazwami projektów, ale rozsądnym podejściem może być użycie serwera proxy aplikacji w celu zapewnienia pojedynczej przestrzeni nazw. Inną opcją jest uruchomienie ich jako osobnych plików WAR w kontenerze internetowym, takim jak Tomcat. Nie robiłem Grails ani Scali, ale jeśli internetowe interfejsy API są otoczone serwletami Java, to jesteś złoty. Jeśli nie, będziesz musiał użyć proxy aplikacji, aby ukryć osobne porty itp.
Berin Loritsch,

Odpowiedzi:


1

Osobiście przepisywanie brzmi dla mnie bardziej wydajnie, ale jeśli musisz to zrobić krok po kroku, sugerowałbym przyjęcie następującego podejścia:

  • Przenieś istniejący kod bazy danych, aby użyć Slicka (prawdopodobnie będziesz potrzebować owijarek wokół niego, aby chronić swój istniejący kod przed zbyt wieloma zmianami).
  • Następnie zintegruj Play ze środowiskiem uruchomieniowym i użyj Silhouette do uwierzytelnienia i autoryzacji za pomocą Akcji Play.
  • Powinieneś wtedy móc przenosić pojedyncze GSP do Play / Twirl pojedynczo.

Niestety nie znam sposobu, aby zmusić ich do słuchania tego samego portu, więc trzeba by było przekierowywać z Grails do portu Play, aby był płynny.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.